首页 > 编程语言 >LeetCode算法笔记 118. 杨辉三角

LeetCode算法笔记 118. 杨辉三角

时间:2022-10-13 00:12:30浏览次数:49  
标签:get int res List 118 numRows 杨辉三角 LeetCode

import junit.framework.TestCase;

import java.util.ArrayList;
import java.util.List;


public class LeetCode04_2 extends TestCase {


    /**
     *
     * 118. 杨辉三角
     * 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
     * 在「杨辉三角」中,每个数是它左上方和右上方的数的和。
     *
     * 示例 1:
     * 输入: numRows = 5
     * 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
     *
     * 示例 2:
     * 输入: numRows = 1
     * 输出: [[1]]
     */

    /**
     * 时间复杂度:O(numRows ^2)
     * 空间复杂度:O(1)O(1)。不考虑返回值的空间占用。
     */
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        for (int i = 1; i < numRows + 1; i++) {
            List<Integer> thisNumList = new ArrayList<>();
            for (int j = 0; j < i; j++) {
                if (j == 0 || j == i - 1) {
                    thisNumList.add(1);
                } else {
                    thisNumList.add(res.get(i - 2).get(j - 1) + res.get(i - 2).get(j));
                }
            }
            res.add(thisNumList);
        }
        return res;
    }

    public void test() {
        int[][] mat = new int[][]{{1, 2}, {3, 4}};
        System.out.println(generate(5));
    }
}

  

标签:get,int,res,List,118,numRows,杨辉三角,LeetCode
From: https://www.cnblogs.com/sueyyyy/p/16786602.html

相关文章

  • leetcode-155. 最小栈
    155.最小栈首先关键是动态维护最小值,就是弹出元素为最小值的时候,如何知道次最小值可以使用一个辅助栈mStack,mStack只用于存储push路径上的所有曾经的最小值,mStack的......
  • [Leetcode Weekly Contest]314
    链接:LeetCode[Leetcode]2432.处理用时最长的那个任务的员工共有n位员工,每位员工都有一个从0到n-1的唯一id。给你一个二维整数数组logs,其中logs[i]=[idi......
  • leetcode-69-easy
    Sqrt(x)思路一:暴力publicintmySqrt(intx){longbegin=1L;while((begin*begin)<=x){begin++;}returnLong.valueOf(begin).i......
  • #yyds干货盘点# LeetCode 热题 HOT 100:子集
    题目:给你一个整数数组 nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。 示例1:输入:nums=[1,2,3......
  • 代码随想录算法训练营第一天 | 704. 二分查找 35.搜索插入位置 27. 移除元素 (LeetC
    704.二分查找题目链接使用条件:数组有序无重复元素写法:根据搜索区间边界是左闭右开还是左闭右闭分为两种写法:左闭右开区间右侧不包括在区间内,在写代码的时候......
  • Leetcode 844 -- 双指针&&O(1)时间复杂度
    题目描述比较含退格的字符串思路这里主要考虑O(1)空间复杂度的做法。一个字符是否会被删掉,只取决于该字符后面的退格符,而与该字符前面的退格符无关。因此当我们逆......
  • leetcode27.移除元素
    1.题目描述给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并......
  • 【算法训练营day1】LeetCode704. 二分查找 LeetCode27. 移除元素
    【算法训练营day1】LeetCode704.二分查找LeetCode27.移除元素LeetCode704.二分查找题目链接:704.二分查找初次尝试看到题目标题是二分查找,所以尝试使用二分查找的......
  • leetcode 219. Contains Duplicate II 存在重复元素 II(简单)
    一、题目大意给你一个整数数组nums和一个整数k,判断数组中是否存在两个不同的索引i和j,满足nums[i]==nums[j]且abs(i-j)<=k。如果存在,返回true;否则,返......
  • LeetCode 二叉树遍历算法题解 All In One
    LeetCode二叉树遍历算法题解AllInOne树的遍历/TreeTraversal主要看根节点Root的遍历顺序:前,中,后前序遍历(Root,Left,Right)先访问根节点,然后遍历左......