1. 程式人生 > >leetcode刷題總結(持續更新)

leetcode刷題總結(持續更新)

1.關於遞迴與迭代

遞迴的效能低但是程式碼直觀,改成迭代後子結構不變

二叉樹的迭代實現?

2.動態規劃

關於最大值最小值這種最值問題,一般都可以通過動態規劃的方法進行判斷,某些存在性問題也可以用動態規劃的方法進行計算

3.初始化數字為最大值時,可以為INT_MAX,但是記住,INT_MAX+1後為負數!!

4.易錯:

for(;;)中,如果兩個分號之間的判斷條件有多個,用邏輯運算子號&&與||連線,切記不要用逗號!

5.關於超時

某些 要求列印所有可行解的題目,需要先用DP判斷有沒有可行解,有可行解再用DFS列印,否則可能會超時

6. 關於快速排序

如果pivot是第一個數字,為什麼要先從後往前找小的呢?因為會出現這種情況,比如

1,4,2,3

如果先從前往後找大的,那麼最後返回的pivot是4,快速排序要求對於返回的pivot,pivot左邊的數要麼沒有要麼比pivot小,右邊的數要麼沒有要麼比pivot大