Mar 4, 2021 12:00 AM
总体计划
- [ ] 面经
- [ ] leetcode刷题春招计划1
- [x] C++面向对象
- [ ] linux高性能服务器
- [ ] redis
- [ ] mysql底层
- [ ] 计算机网络
- [ ] 计算机操作系统
- [ ] 了解hc
二分法
while(low<high)
int mid = low + (high - low)/2;
...
low = mid + 1;
...
high = mid ;
Fisher Yates shuffle
for(int i=suit.length-1;i>0;i--)
{
random1 = Random.next(1,i);
exchange(suit[random1],suit[i]);
}
并查集
Mar 6, 2021
单调栈
- [ ] lc503下一个更大元素
- [ ]
思路:单调栈和循环数组
可以遍历一次数组,如果元素是单调递减的(则他们的「下一个更大元素」相同),我们就把这些元素保存,直到找到一个较大的元素;把该较大元素逐一跟保存了的元素比较,如果该元素更大,那么它就是前面元素的「下一个更大元素」。
class Solution {
public:
vector<int> nextGreaterElements(vector<int>& nums) {
int n = nums.size();
vector<int> ret(n, -1);
stack<int> stk;
for (int i = 0; i < n * 2 - 1; i++) {
while (!stk.empty() && nums[stk.top()] < nums[i % n]) {
ret[stk.top()] = nums[i % n];
stk.pop();
}
stk.push(i % n);
}
return ret;
}
};
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/next-greater-element-ii/solution/xia-yi-ge-geng-da-yuan-su-ii-by-leetcode-bwam/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
**动态规划**
目标:
-
[ ] 会做经典题
- [ ] 最长有效括号 lc32
- [ ] 猜硬币
- [ ] 机器人
- [ ] 青蛙
-
[ ] 举一反三
-
[ ] 算法导论看看
特点:
- 计数
- 求最大最小值
- 求存在性
- 最后一步
- 最优子问题
- 转移方程
- 初始条件
- 边界情况
- 自底向上
链表
- [ ] lc 面试题 链表求和
- [ ]
字符串
- [ ] lc43 字符串相乘 (大数乘法相同的方法)
KMP算法
计算机网络
- [ ] TCP/IP常问