• 118. Pascal's Triangle


    Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.


    In Pascal's triangle, each number is the sum of the two numbers directly above it.

    Example:

    Input: 5
    Output:
    [
         [1],
        [1,1],
       [1,2,1],
      [1,3,3,1],
     [1,4,6,4,1]
    ]

    按照规律brute force

    时间:O(N^2),空间:O(N^2)  -- N : numRows

    class Solution {
        public List<List<Integer>> generate(int numRows) {
            List<List<Integer>> res = new ArrayList<>();
            if(numRows == 0) return res;
            
            res.add(new ArrayList<>());
            res.get(0).add(1);
            for(int i = 1; i < numRows; i++) {
                List<Integer> tmp = new ArrayList<>();
                tmp.add(1);
                for(int j = 0; j + 1 < i; j++) {
                    tmp.add(res.get(i - 1).get(j) + res.get(i - 1).get(j + 1));
                }
                tmp.add(1);
                res.add(tmp);
            }
            return res;
        }
    }
  • 相关阅读:
    KMP
    1. Android Studio阅读源码
    疑难杂症
    队列
    方法和数组
    基本语法
    MySQL数据库创建
    MySQL安装
    Python--爬虫之(斗图啦网站)图片爬取
    Linux网络编程之基础概念
  • 原文地址:https://www.cnblogs.com/fatttcat/p/10054249.html
Copyright © 2020-2023  润新知