自我監督刷題記錄處1

2021-10-03 06:21:05 字數 2718 閱讀 8595

第一篇日記,用於記錄刷題的每天程序,因為怕自己又堅持不下去,所以讓大家監督。每天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...