Leetcode 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:
Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
Input: numRows = 1
Output: [[1]]
- Bizden bize verilen n katlı bir pascal üçgeni oluşturmamız isteniyor.
- Pascal üçgeninde bir değeri üst katındaki iki değerin toplamından bulmaktayız.
- 1 2 1 -> 1 3 3 1 elde edilir.
- Bunu yapabilmek için bir katı hesaplarken üst katının başına ve sonuna 0 eklememiz işimizi kolaylaştırır.
- 0 1 2 1 0 bu şekilde toplamaları yaparak bir sonraki katı buluruz.
def generate(self, numRows: int) -> List[List[int]]:
res = [[1]] #ilk kat hep aynı
for i in range(numRows - 1):
temp = [0] + res[-1] + [0] #sol ve sağa 0 ları ekleriz.
row = []
for j in range(len(res[-1])+1):
row.append(temp[j] + temp[j+1])
res.append(row)
return res