- https://space.bilibili.com/206214/channel/collectiondetail?sid=842776&ctype=0
- https://leetcode.cn/problemset/
- https://www.programmercarl.com/
暴力做法每次拿两个数出来相加,和 target 比较,那么花费 O(1) 的时间,只获取了 O(1) 的信息。 而哈希表做法,每次查询都能知道 O(n) 个数中是否有 target−nums[j],那么花费 O(1) 的时间,就获取了 O(n) 的信息。 来自灵神的力扣题解
- 哈希的作用是用 O(1)的时间复杂度查找元素是否存在于集合中。
- 双指针的作用是遍历的时候优化时间复杂度。
一般而言,双重循环的复杂度是 O(n^2),而双指针通过头尾指针一次遍历将复杂度降到了 O(n)。
- TODO:快排手写(面试常考)
- 一个常用的比较字符串字母出现次数相等/不考虑顺序的子串的方法:用一个数组或者Map统计频率,比用集合高效且不容易出错
- 前缀和常用于求和的题目中,作用在于提前记录从0开始的数组的和,然后将求某区间的和的时间复杂度从O(n)转化为O(1)
- 单调队列三步:入、出、记录值
- 206 反转链表(快手一面)
- 手写LRU(快手二面)