public class Solution {
    public IList<IList<int>> Generate(int numRows) {
        var list = new List<IList<int>>();

            for (int i = 0; i < numRows; i++)
            {
                var row = new List<int>();
                if (i == 0)
                {
                    row.Add(1);
                }
                else if (i == 1)
                {
                    row.Add(1);
                    row.Add(1);
                }
                else
                {
                    var prerow = list[i - 1].ToList();

                    for (int j = 0; j <= i; j++)
                    {
                        if (j == 0)
                        {
                            row.Add(1);
                        }
                        else if (j == i)
                        {
                            row.Add(1);
                        }
                        else
                        {
                            row.Add(prerow[j - 1] + prerow[j]);
                        }
                    }
                }
                list.Add(row);
            }

            return list;
    }
}

https://leetcode.com/problems/pascals-triangle/#/description

 

Python的实现:

 1 class Solution:
 2     def generate(self, numRows: int) -> 'List[List[int]]':
 3         result = []#定义一个空数组,用于保存基本最终结果(二维数组))
 4         for i in range(numRows):
 5             if i == 0:#第一行:[1]
 6                 result.append([1])
 7             elif i == 1:#第二行:[1,1]
 8                 result.append([1,1])
 9             else:# i >= 2#第三行以后
10                 prerow = result[-1]#上一行
11                 currow = []#当前行
12                 for j in range(i+1):#循环j,表示二维数组中的:第i行、第j列
13                     if j == 0 or j == i:#第一列和最后一列是1
14                         currow.append(1)
15                     else:#中间列,上一行的第j-1列元素 + 上一行的第j列元素
16                         currow.append(prerow[j-1] + prerow[j])
17                 result.append(currow)#将当前行添加到结果数组中
18         return result#返回结果数组

 

posted on 2017-04-21 17:17  Sempron2800+  阅读(118)  评论(0编辑  收藏  举报