每日一題20201206(118 楊輝三角)

2022-05-15 06:22:59 字數 1301 閱讀 4652

118. 楊輝三角

如果你非要按照裡的樣子來看的話,會複雜一點,如果你按照這樣的格式:111

1211331

14641

這樣會好理解一點,每次要計算的數,都是上一行的同位置索引+上一行的上個位置的值,如果上一行的上個位置或者上一行的同樣位置沒有值,則只加上有值的部分。

class solution:

def generate(self, numrows: int) -> list[list[int]]:

# 防止numrows為0的情況,直接return

if numrows == 0:

return

# 為了方便,直接新增第一行資料,這樣計算上一行的時候就永遠有值

ans = [[1]]

# 索引從1開始,是因為上面我們已經加入了一行資料了

for i in range(1, numrows):

# result是每一行的資料

result =

# 為什麼是i+1,因為我們求的當前行的資料總是比上一行多乙個

for j in range(i+1):

# 如果j-1 < 0了,那麼說明j=0,那麼說明上一行沒有前乙個數,直接加

# 上上一行的同位置數ans[i-1] 這個是上一行 同位置數是ans[i-1][j]

if j - 1 < 0:

# 如果j超出了上一行的索引範圍,那麼直接加上上乙個的最後乙個數

elif j > len(ans[i-1]) - 1:

# 否則都在正常範圍內,直接加上ans[i-1]的j和j-1

下面那種做法把兩端固定了1和1,每次只計算中間的內容
class solution:

def generate(self, numrows: int) -> list[list[int]]:

result =

for n in range(numrows):

if n == 0:

elif n == 1:

else:

return result

每日一題 1

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...

每日一題2018 3 21

leetcode 2 模擬十進位制運算考察單鏈表基本操作。題無難點,個人基礎需要提高。definition for singly linked list.struct listnode class solution while p while q if shi val s next null ret...

每日一題2018 3 22

leetcode 03 最長不重複子串 第一反應就是動態規劃。看到了網上的方法一。直接把問題簡化為找兩個重複字元間的最長距離,太巧妙了!class solution if i idx max locs s i i return max ling老師的方法二 仍舊轉化為動態規劃,但是為節省空間不再開個...