week1 Linear部分
Basic基礎(chǔ)
Reorder List
Reverse Nodes in K-Group
Tree Sum
Length of the longest substring
moving average from data stream
simply path
largest rectangle in histogram
trapping water
練習(xí)部分Linear :
2sum1
2sum2
evaluate reverse polish rotation
gas station
minimum windows substring
partition list
remove nth node from tail
sort colors
valid parentheses
copy linked list with random pointer
first bad version
High Level進(jìn)階
@highest product of 3
container with most
candy
top k elements
sort transformed array
linked list cycle
remove k digits
3 sum smaller
closest binary tree value 2
感覺練習(xí)有些題比basic要簡(jiǎn)單,可以先做。
反正先做完basic和練習(xí)再做進(jìn)階。
總結(jié):
首先需要數(shù)據(jù)結(jié)構(gòu)總結(jié),其次是每道題的總結(jié)
數(shù)據(jù)結(jié)構(gòu)總結(jié)
以java為例,需要完成以下幾個(gè)數(shù)據(jù)結(jié)構(gòu)的總結(jié)
Array
LinkedList
single
double
String
Hash
set
map
table
Queue
queue
dequeue
數(shù)據(jù)結(jié)構(gòu)總結(jié)
1.原理或者說為了解決什么問題
2.常用api
| locate | insert/del | search | iteration |
|---|
3.常規(guī)操作的時(shí)間復(fù)雜度
| locate | insert/del | search | iteration |
|---|
4.本數(shù)據(jù)結(jié)構(gòu)獨(dú)有的一些操作等
比如hashmap的iterator怎么寫之類
5.常出現(xiàn)題,考察什么。需要后續(xù)總結(jié)。
leetcode題目總結(jié)
1.介紹自己的solution。想象電話面試,電話中面試官直接丟一道題過來,怎么簡(jiǎn)單描述清楚。一開始能越詳細(xì)是越好的。后面,歸納成簡(jiǎn)單幾句方便復(fù)習(xí)。
2.做題中遇到的問題,犯過的錯(cuò)誤。
3.對(duì)于一類tag的題,歸納總結(jié)規(guī)律、模板(可選)。
4.對(duì)于一類題,??疾斓挠心男?/p>


5.總結(jié)任何共性規(guī)律,比如 in-place 要怎么做等等。
6.記錄任何自己覺得值得記錄的。曾經(jīng)有個(gè)北大的,刷完480多道leetcode,做筆記做了幾個(gè)GB?。。?!然后他進(jìn)了谷歌。關(guān)鍵在于,理清自己的思路,對(duì)數(shù)據(jù)結(jié)構(gòu),算法的理解,怎么分辨題目該應(yīng)用哪種等。
為什么要寫總結(jié)?
我想其實(shí)以上已經(jīng)很清楚了,為了功不唐捐,不刷了就忘,為了面試中遇到同樣的題能寫對(duì)甚至bug free,為了徹底理解題(輸出是更好的輸入),事半功倍。