118.杨辉三角解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 118.杨辉三角解析

 

 

class Solution {
    public List<List<Integer>> generate(int numRows) {
     List<List<Integer>> ret=new ArrayList<>(); 
     List<Integer> cur=new ArrayList<>();
     cur.add(1);
     ret.add(cur);
     for(int i=1;i<numRows;i++){              这个循环的目的是要一层一层的增加
     List<Integer> curh=new ArrayList<>();    要求的那一层
     curh.add(1);
     for(int j=1;j<i;j++){                    这个目的是取上一层的元素来求中间
     List<Integer>prev=ret.get(i-1);
     curh.add(prev.get(j)+prev.get(j-1));
         }
    curh.add(1);
    ret.add(curh);}        //加一层
    return ret;
       }
    } 

核心思路:创造一种类似于二维数组的模式,选择二维的顺序表:然后我们是选择一层一层的去创造,第一层我们是用一个顺序表来表示(里面是一个一),ret.()里面是顺序表才能表示二维数组中的第一层顺序表,然后开始进入循环开始层层的遍历,每层的头和尾都是1,然后中间的数就取决于上一层的东西,就像我们在二维数组中学习到的———————-[i][j]=[i-1][j]+[i-1][j-1]

有点注意的东西:

                          1.首先这个题所谓的第一层,是我们的从0开始,这也会导致我们在处理部分边界时候可能存在问题。

                           2.看好函数返回类型,所以我们要返回我们的二层顺序表。

 


相关文章
|
6月前
|
索引
leetcode-119:杨辉三角 II
leetcode-119:杨辉三角 II
60 0
|
2月前
|
索引
08_杨辉三角
08_杨辉三角
|
6月前
|
C++
杨辉三角(C++)
杨辉三角(C++)
75 1
|
6月前
|
C++ 索引
杨辉三角 II(C++)
杨辉三角 II(C++)
39 0
|
索引
【Leetcode-118. 杨辉三角 -119. 杨辉三角Ⅱ】
【Leetcode-118. 杨辉三角 -119. 杨辉三角Ⅱ】
32 0
|
算法
【LeetCode】136. 只出现一次的数字、118. 杨辉三角
目录 136. 只出现一次的数字 118. 杨辉三角
49 0
leetcode:118. 杨辉三角
函数原型:int** generate(int numRows, int* returnSize, int** returnColumnSizes) 参数解析:numRows是指明要求前几行杨辉三角 returnSize是返回指针数组的元素个数 returnColumnSizes是指明杨辉三角每一行有几个元素
66 0
7-164 打印杨辉三角
7-164 打印杨辉三角
56 0