面试刷题笔记

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

具体实现原理

单调栈

思路:单调栈和循环数组

可以遍历一次数组,如果元素是单调递减的(则他们的「下一个更大元素」相同),我们就把这些元素保存,直到找到一个较大的元素;把该较大元素逐一跟保存了的元素比较,如果该元素更大,那么它就是前面元素的「下一个更大元素」。

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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

**动态规划**

目标:

  • [ ] 会做经典题

  • [ ] 举一反三

  • [ ] 算法导论看看

特点:

  1. 计数
  2. 求最大最小值
  3. 求存在性
  • 最后一步
  • 最优子问题
  • 转移方程
  • 初始条件
  • 边界情况
  • 自底向上

链表

  • [ ] lc 面试题 链表求和
  • [ ]

字符串

KMP算法

计算机网络

上一篇:力扣227. 基本计算器 II-C语言实现-中等难度题


下一篇:201312-3 最大的矩形