文章目錄
- 一、哈希
- 1.1兩數之和
- 1.2字母異位詞分組
- 1.3最長子序列
- 二、雙指針
- 2.1[移動零](https://leetcode.cn/problems/move-zeroes/description/?envType=study-plan-v2&envId=top-100-liked)
- 2.2[盛最多水的容器](https://leetcode.cn/problems/container-with-most-water/description/?envType=study-plan-v2&envId=top-100-liked)
- 2.3[三數之和](https://leetcode.cn/problems/3sum/description/?envType=study-plan-v2&envId=top-100-liked)
- 2.4[接雨水](https://leetcode.cn/problems/trapping-rain-water/description/?envType=study-plan-v2&envId=top-100-liked)

一、哈希
1.1兩數之和
力扣鏈接:兩數之和
方法1:暴力枚舉
直接兩個for循環,從頭到尾循環一遍,碰見相等就直接從循環跳出,但是效率很低,時間復雜度高
方法2:哈希
先實例化一個哈希表,unordered_map,然后開始for循環,for循環不需要判斷條件,sum - 當前的數如果在哈希表中找不到,那么我們就直接把當前的數插入到哈希表中,以此類推。
哈希解法圖解
1.2字母異位詞分組
題目鏈接
方法1:暴力枚舉
兩個for循環,每取出一個字符串就sort一下,看是不是與其匹配的字符串,是的就直接emplace_back到vector<vector<string>>中,效率低,時間復雜度高
方法2:哈希(圖解)
1.3最長子序列
題目鏈接
方法1:排序+循環
方法2:哈希
二、雙指針
2.1移動零
2.2盛最多水的容器
2.3三數之和
用雙指針維護區間長度,先排序再找目標值,然后利用單調性來維護區間長度
2.4接雨水