題目說明:給一個整數n要你求出前n列的帕斯卡三角形。帕斯卡三角如下:
Case 1:
Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
Case 2:
Input: numRows = 1
Output: [[1]]
解題思路:相信大家從小學數學都背過帕斯卡三角形,那用程式該如何表示呢?如果以numRows=5來看,三角形會長這樣。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
我們可以發現以下規則:
找到規則後程式就很好寫了
附上程式碼以及註解
Python
class Solution:
def generate(self, n: int) -> List[List[int]]:
pascalList=[]#建立list儲存結果
for i in range(n):
pascalList.append([])
pascalList[i].append(1)#每一列的開頭數字都是1
for j in range(1,i):
pascalList[i].append(pascalList[i-1][j-1]+pascalList[i-1][j])
if(n!=0):
pascalList[i].append(1)#每一列的結尾數字都是1
pascalList[0]=[1]
return pascalList