hot100 review

Leome發表於2024-10-13

56. 合併區間

https://leetcode.cn/problems/merge-intervals/description/?envType=study-plan-v2&envId=top-100-liked

該怎麼排序區間
vector<vector>& intervals
sort(intervals)即可

238. 除自身以外陣列的乘積

https://leetcode.cn/problems/product-of-array-except-self/description/?envType=study-plan-v2&envId=top-100-liked

41. 缺失的第一個正數

https://leetcode.cn/problems/first-missing-positive/?envType=study-plan-v2&envId=top-100-liked

240. 搜尋二維矩陣 II

選擇右上角的數字,比target大,往左,比target小,往下;
alt text

148. 排序連結串列

https://leetcode.cn/problems/sort-list/?envType=study-plan-v2&envId=top-100-liked

146. LRU 快取

https://leetcode.cn/problems/lru-cache/description/?envType=study-plan-v2&envId=top-100-liked

215. 陣列中的第K個最大元素

先寫一個比較器,小根堆

class myCompar {
    // 小根堆
public:
    bool operator()(int left, int right) {
        return left > right;
    }
};

堆大小控制在k,最終在堆中的k個數都是最大的k個數字。

  1. 遍歷陣列,堆size < k, 直接push。
  2. 否則看元素大小,比堆頂大的話,pop堆頂,push元素
for (int num : nums) {
    if (pri_que.size() < k) {
        pri_que.push(num);
    } else {
        if (num > pri_que.top()) {
            pri_que.pop();
            pri_que.push(num);
        }
    }
}