zoukankan      html  css  js  c++  java
  • LeetCode

    题目:

    Given numRows, generate the first numRows of Pascal's triangle.

    For example, given numRows = 5,
    Return

    [
         [1],
        [1,1],
       [1,2,1],
      [1,3,3,1],
     [1,4,6,4,1]
    ]
    

    思路:

    递归

    package recursion;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class PascalsTriangle {
    
        public List<List<Integer>> generate(int numRows) {
            List<List<Integer>> res = new ArrayList<List<Integer>>();;
            List<Integer> row = new ArrayList<Integer>();
            if (numRows == 1) {         
                row.add(1);
                res.add(row);
            } else if (numRows > 1){
                res = generate(numRows - 1);
                List<Integer> lastRow = res.get(numRows - 2);
                int size = lastRow.size();
                for (int i = 0; i < size; ++i) {
                    row.add((i > 0 ? lastRow.get(i - 1) : 0) + lastRow.get(i));
                }
                row.add(lastRow.get(size - 1));
                res.add(row);
            }
            return res;
        }
        
        public static void main(String[] args) {
            PascalsTriangle p = new PascalsTriangle();
            List<List<Integer>> res = p.generate(5);
            for (List<Integer> row : res) {
                for (int i : row)
                    System.out.print(i + " ");
                System.out.println();
            }
        }
    
    }
  • 相关阅读:
    git命令总结
    Junit
    zookeeper--概述
    NIO与Socket
    分区分表
    ThreadLocal
    垃圾收集器
    垃圾收集算法
    主从复制
    Redis--集群
  • 原文地址:https://www.cnblogs.com/null00/p/5127488.html
Copyright © 2011-2022 走看看