leetcode118 Pascal's Triangle

题目

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]
]

生成给定行数的帕斯卡三角形。

解题思路

利用帕斯卡三角形的性质即可很简单的解决。
性质:第n行的第1个数为1,第二个数为1×(n-1),第三个数为1×(n-1)×(n-2)/2,第四个数为1×(n-1)×(n-2)/2×(n-3)/3…依此类推。

public class leetcode118 {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        for (int n = 1; n <= numRows; n++) {
            List<Integer> temp = new ArrayList<>();
            int num = 1;
            for (int k = 1; k <= n; k++) {
                if (k == 1)
                    num = 1;
                else
                    num = num * (n - k+1) / (k - 1);
                temp.add(num);
            }
            res.add(temp);
        }
        return res;
    }
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kevinjqy/article/details/71211418
文章标签: leetcode
个人分类: 算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭