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。給...