118. 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,求n层帕斯卡三角形(也称杨辉三角形)。 

解题思路

观察杨辉三角的构造形式,在每一行的最左和最右侧都是1,而其中的元素的值,则是上面一行的相邻两个值的和构造成的。也就是:num[i][j] = num[i-1][j-1] + num[i-1][j]

   int[][] generate(int numRows) {
        int[][] result = new int[numRows][numRows];
        for (int i = 0; i < numRows; i++)
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i)
                    result[i][j] = 1;
                else
                    result[i][j] = result[i - 1][j - 1] + result[i - 1][j];
            }
        return result;
    }

 

 

 

 

 
posted @ 2017-10-14 20:28  daniel456  阅读(100)  评论(0编辑  收藏  举报