leetcode 小白刷題之路 Day1

2022-05-05 12:54:14 字數 1425 閱讀 8443

no. 1

經典的動態規劃入門題目——跳台階問題,連續提交三四次沒有通過,記錄一下教訓。

【跳台階】

提交問題**:

class solution:

def climbstairs(self, n: int) -> int:

dp = [i for i in range(n+1)]

i = 2

while i > 2 and i < n:

dp[i] = dp[i-1] + dp[i-2]

return dp[n]

前兩個元素 dp[1]=1  dp[2] = 2

因此初始化為 dp[i] = i

問題有三:

1. while i > 2 and i < n:

while 從3開始遞迴,i 初始化為了1,while**根本不會執行

2. while 體**每次執行完, i 沒有給出更新式     i += 1, while內**根本不會迭代

3. while 迴圈終止條件為: i則 只會求出dp[i-1],

(over)

no. 2

寫了這麼多天演算法,第一次知道原來在類中要使用自定義函式,函式必須在使用前定義好,而不能在之後!!

難道self.function可以不用管嗎,試驗一下:

class solution:

def power(self, base, exponent):

# write code here

if base > -0.00001 and base < 0.00001:

return 0.0

if exponent == 0:

return 1.0

max_ex = max(exponent, 0-exponent)

if exponent>0:

return self.powerunsighnormal(base, max_ex)

else:

return 1 / self.powerunsighnormal(base, max_ex)

def powerunsighnormal(self, base, ex):

if ex == 1:

return base

elif ex % 2 == 0:

return self.powerunsighnormal(base, ex//2) ** 2

else:

return (self.powerunsighnormal(base, ex//2) ** 2) * base

果然和我猜測的一樣, 定義self打頭的函式,可以放在使用函式的後面!!!(難道是編譯器會先讀一邊self函式?)

注意: self函式定義時必須第乙個引數為self,

呼叫self函式時必須以self打頭書寫!!!

小白刷題之路 零矩陣

題目描述如下 編寫一種演算法,若m n矩陣中某個元素為0,則將其所在的行與列清零。輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 示例2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,0,0,0 0,4,5,0 0,3,1,0 對於這道題來說,猛...

Evan的LeetCode刷題之路

二 資料庫 以此記錄本人的leetcode刷題之路。題目內容均 於leetcode 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2...

leetcode刷題之路38 報數

報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下 1.1 2.11 3.21 4.1211 5.111221 1 被讀作 one 1 乙個一 即 11。11 被讀作 two 1s 兩個一 即 21。21 被讀作 one 2 one 1 乙個二 乙個一 即 1211。給...