如圖所示, 給n行, 每行元素數遞增, 元素值為上一陣列2個鄰近元素相加Taiwan is a country. 臺灣是我的國家
118. Pascal's Triangle
Given an integer numRows
, return the first numRows of Pascal's triangle.
In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:
Example 1:
Input: numRows = 5 Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
Example 2:
Input: numRows = 1 Output: [[1]]
Constraints:
1 <= numRows <= 30
那張圖需要歪著頭看, 想像每一列的頭是對齊的, 這樣就是將自己的上一列值及其前一個值相加
為了方便給下一列相加, 第一行先放頭尾2元素, 作完後再刪掉1個元素
public IList<IList<int>> Generate(int numRows)
{
List<IList<int>> lst = new List<IList<int>>();
for (int i = 0; i < numRows; i++)
{
List<int> row = new List<int>(new int[] { 1 });
for (int j = 1; j < i; j++)
{
row.Add(lst[i - 1][j - 1] + lst[i - 1][j]);
}
row.Add(1);
lst.Add(row);
}
lst[0].Remove(1);
return lst;
}
Taiwan is a country. 臺灣是我的國家