球球速刷LC之雙指標 二輪

2021-10-07 02:10:44 字數 2310 閱讀 9465

無序兩數之和

對於當前num[i],要找的是target-num[i],可利用集合逐漸構建搜尋集合

class

solution

table[nums[i]

]=i;

}return ret;}}

;

有序數字兩數之和!!!

採用雙指標

class

solution

;return ret;

}else

if(curr else

if(curr >target )

}return ret;}}

;

3數字之和!!!

將原數列排序之後,歸納為有序三元組的解法。則依次選取第乙個數字後,後面兩數按照有序序列兩數之和求解。注意去重

//歸納為有序三元組的解法

class

solution);

++left;

--right;

while

(left == nums[left-1]

)++left;

while

(left < right && nums[right]

== nums[right+1]

)--right;}}

}return result;}}

;

最接近的3數字之和

思路同上一題,注意對最接近的判斷。

class

solution

if(sum++i;

else

if(sum>target)

--j;

else

}return ret;

}int

threesumclosest

(vector<

int>

& nums,

int target)

}return retsum;}}

;

四數之和

思路與三數之和一致。

注意與回溯法求k數之和不同處是,這裡的數字有正有負,如果回溯需要對每乙個數字均選擇或不選擇。而此處內層採用雙指標方法,效率高,不會超時。

class

solution);

++left;

--right;

//跳過相同數

while

((left < right)

&&(nums[left]

== nums[left-1]

))++left;

while

((left < right)

&&(nums[right]

== nums[right+1]

))-- right;}}

}}return result;}}

;

最大裝水體積!!!

//對於乙個木板對其容積由較小者的高度決定,另乙個較高者的高度即使更高也不影響。

//對於木板i,其能組成的最大容器是與》=height[i] 中距離最遠的那個木板組成。

//因此,對於中高度較小者a,其能組成的最大容積已經確定(由於i,j由兩側向內,假設a為i,此時j即為最遠的那個》=height[i]的木板),因此此時可以直接跳過a。

class

solution

else

}return area;}}

;

判斷鍊錶是否是回文子串

找到鍊錶中點後,將鍊錶後面一半翻轉,在與前一半比較。

最長無重複字元子串!!!

這是一道dp題目。

假設dp[i] 以第i個字元結尾的最長長度,同時記錄

s[i]上一次出現的位置。

若字元i第一次出現,則dp[i]=dp[i-1]+1

否則,最長長度不能超過到上一次出現的位置。因此,

dp[i]=min(dp[i-1]+1,i-last_pos);

class

solution

else

} character_pos[s[i]

]=i;

if(dp[i]

>ret)ret=dp[i];}

return ret;}}

;

雙指標的滑動視窗問題

參考文章 : 滑動視窗框架

最短目標串

球球速刷LC 貪心

貪心的思路很簡單 在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,它所做出的僅僅是在某種意義上的區域性最優解,也就是當前最貪婪的解。跳躍遊戲1 維護乙個當前所能到達的視窗,並在這個視窗內遍歷每個點,看能達到的最遠距離farest。從而將視窗更新到當前視窗 end 1...

球球速刷LC 排序

最大數字 將字串排序,兩兩比較,二者組成的數字越大,則對於字串在前面。bool cmp const string a const string b class solution if result 0 0 result 0 return result 以下兩題思路類似。合併區間 插入區間 引用指數 ...

球球速刷LC BFS DFS 二輪

二叉樹裡已經大量使用了dfs,bfs,二叉樹的前序遍歷,中序遍歷 後序遍歷就是dfs,層序遍歷 就是bfs。對於二叉樹這種具有單向分層結構,進行dfs bfs時無需擔心會重複訪問,但是對於無向圖或者 有向有環圖等結構,需要使用輔助資料結構來記錄當前節點是否已經訪問過。島嶼數目 class solut...