第一篇日記,用於記錄刷題的每天程序,因為怕自己又堅持不下去,所以讓大家監督。每天3道題,希望能堅持下去。作為95後女程式媛??,經驗不多,演算法不好,所以一直逃避刷題,但年齡到了還是要面對的?…有經驗的大神們如果有更好的解法希望指導下!感恩感恩!❤(easy level)
class
solution
:def
twosum
(self,nums,target)
:#建立空字典
dic =
#從nums中取index,value
for num1,i in
enumerate
(nums)
:#獲取目標值
num2 = target - num1
#檢視目標值是否被儲存在新建的字典裡
if num2 in dic:
#有的話返回兩個index
return
[dic[num2]
, i]
#沒有的話將num1和它的index存入字典中,以便下次迴圈時能檢視是否在字典中。
dic[num1]
= i
(medium level)
class
solution
:def
addtwonumbers
(self,l1:listnode,l2:listnode)
:'''
sum:每位數相加的總和加進制(如果前一位有進製,需在後一位計算時加上
carry: 進製計數器
dummy & tail:dummy的煉表頭和鍊錶尾
'''sum=
0 carry =
0 dummy = tail = listnode(0)
#這裡我寫全了,也可以寫成while l1 or l2 or carry,判定是否迴圈
while l1 !=
none
or l2 !=
none
or carry !=0:
#計算每個位的兩數字之和,carry是進製計數
sum=
(l1.val if l1 else0)
+(l2.val id l2 else0)
+ carry
#給tail.next賦值,因為只取sum的各位,所以用取餘
tail.
next
= listnode(
sum%10)
#tail進行重新指向
tail = tail.
next
#計算要進幾位
carry =
sum//
10#分別判斷l1,l2是否為空後,重新移動指標賦值
if (l1 !=
none):l1 = l1.
next
if (l2 !=
none):l2 = l2.
next
#因為是逆序輸出所以用dummy.next做煉表頭返回鍊錶
return dummy.
next
*主要考察鍊錶,python沒有鍊錶的資料型別,如果不在leetcode上寫的時候不要忘記定義node類~
(medium level)
class
solution
:def
lengthoflongestsubstring
(s:str)-
>
int:
''' cur_length是窗戶長
max_length是用於儲存最大值的
pointer是指向不重複就不移動的str
list用來存全部不同的
'''cur_length =
0 max_length =
0 pointer =
0 lists =
#第一步先把極端情況排除
if s is
none
:return
0#i指標不斷向尾部移動
for i in
range
(len
(s))
:#如進入迴圈,則必然有乙個元素
cur_length +=
1#check i指標所指的元素是否在lists中
while s[i]
in lists:
#pointer所指元素與i所指相同,so,去重元素
lists.remove(s[pointer]
)#pointer向前移動一位
pointer +=
1#目前長度減一
cur_length -=
1#如不在lists中則加入i所指元素
)#對比現長度和max_length的長度,同時也可能對max_length賦值
if cur_length > max_length:max_length = cur_length
#返回最長,打完收工....
return max_length
*這題很明顯用sliding window來做,我本來想用enumerate來取index,因為我本人用zip和enumerate不太好,但最後還是選擇直接遍歷的方法…整體思路很容易想,但長度計算過程中,請記住可能要出現cur_length+1 - max_length的情況。寫了幾種做法,其他的都太慢超時了?,什麼時候能不這麼菜。 自我監督刷題記錄處3
第3天。決定先從基礎演算法分類做起,可能更有邏輯性?easy level class solution def strstr self,haystack str,needle str int len h len haystack len n len needle pointer 0 特殊情況,所檢視...
自我監督刷題記錄處6
第6天。今天事情實在太多了,但還是要抽出一點時間來寫3道簡單題吧。whatever只要寫了就好,再堅持幾天吧,至少不會太搞笑t t。加個油吧。都加油吧。哎 easy level class solution def isanagram self,s str,t str bool result tru...
自我監督刷題記錄處7
finally,第7天,一周啦!值得鼓勵,努力,目標暫時定到兩周吧,到了再續吧。再續。每天一題活動準備正式參加,看日曆上的紅叉叉太難受了。easy level class solution def merge self,a list int m int,b list int n int none d...