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;
        }
    }
  • 相关阅读:
    verilog BRAM 读写
    verilog 语法一 led 翻转
    面试 遇到 问题
    S32K144+UJA1169 (四 ) S32K144 SPI1 功能初始化
    S32K144+UJA1169 ( 三 ) S32K144 SPI1 功能初始化
    S32K144+UJA1169 ( 二 ) S32K144 SPI1 对应的引脚 初始化 为 SPI 功能
    S32K144+UJA1169 ( 一 ) 连接框架+1169 功能 说明
    编译 xboot
    make clean make[1]:sdl2-config:命令未找到
    lwip 内存配置和使用,以及 如何 计算 lwip 使用了多少内存?
  • 原文地址:https://www.cnblogs.com/wxdmw/p/13279807.html
Copyright © 2011-2022 走看看