zoukankan      html  css  js  c++  java
  • 杨辉三角

    题目:

    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

    在杨辉三角中,每个数是它左上方和右上方的数的和。

    示例:

    输入: 5
    输出:
    [
         [1],
        [1,1],
       [1,2,1],
      [1,3,3,1],
     [1,4,6,4,1]
    ]

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/pascals-triangle
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    分析:

    这道题目的规则实际上已经在题干中给出了,在杨辉三角中第一行和第二行是固定的,从第三行开始中间部分需要计算,但是首位数和末位数固定为1。

    第三行需要计算一次,第四行需要计算两次... ...

    由于前两行不需要计算,所以如果要求计算3行,那么实际上外层循环只需要执行一次,内层循环也只需要执行一次。如果要求计算4行,那么实际上外层循环只需要执行二次,第一次外层循环的内层循环执行一次,第二次外层循环的内层循环执行两次。

    代码:

    class Solution {
        public List<List<Integer>> generate(int numRows) {
            if (numRows == 0) {
                return new ArrayList<>();
            }
            List<List<Integer>> lists = new ArrayList<>();
            if (numRows >= 1) {
                List<Integer> oneRows = new ArrayList<>();
                oneRows.add(1);
                lists.add(oneRows);
            }
            if (numRows >= 2) {
                List<Integer> twoRows = new ArrayList<>();
                twoRows.add(1);
                twoRows.add(1);
                lists.add(twoRows);
            }
            if (numRows < 3) {
                return lists;
            }
            for (int i = 0; i < numRows - 2; i++) {
                List<Integer> anyRows = new ArrayList<>();
                anyRows.add(1);
                for (int j = 0; j < i + 1; j++) {
                    List<Integer> preRows = lists.get(i + 1);
                    anyRows.add(preRows.get(j) + preRows.get(j + 1));
                }
                anyRows.add(1);
                lists.add(anyRows);
            }
            return lists;
        }
    }
  • 相关阅读:
    【Codeforces】【161Div2】
    【ZOJ月赛】【树形DP】【I.Destroy】
    【Baltic 2001远程通信】
    【树形DP】【分组背包】【HDU1561】
    【差分约束系统】【仍未AC】【Asia Harbin 2010/2011】【THE MATRIX PROBLEM】
    【DP】【2012 ACM/ICPC 成都赛区现场赛】【I.Count】
    【ZOJ月赛】【二分查找】【A.Edward's Cola Plan】
    【DP】【单调队列多重背包】
    【树形依赖背包】
    SQL 格式
  • 原文地址:https://www.cnblogs.com/wxdmw/p/13279807.html
Copyright © 2011-2022 走看看