猫头鹰冲击微软

1,序列化和反序列化BST/常规二叉树

常规二叉树要考虑空节点问题,使用List,不断erase begin,获取front
BST无需考虑空节点,使用vector<TreeNode*>vec,不断插入,最后bstInsert,平衡左右。获得插入。
可以再练习一下。

2,手写LRU
map用来存put的key和value
visited用来记录版本号,visited(x) = y,表示x是第y次的访问。
用queue<{pair, pair}>就操作时的版本号
当缓存不够时,需要确认哪一个需要pop
当时的版本号和现在的版本号相同的,说明没有被操作过,也就是最久没有被访问过。

设三个变量
map<int, int>mp,visited
queue<{pair, pair}>que
int cnt,totalCap,currCap;cnt是版本机制。

可以再练习一下。

3,腐烂橘子

4,遍历二叉树 前序,中序,后续

5,合并区间
6,无重复字符的最长子串
7, 最长连续序列
8,不同岛屿的数量
9,岛屿问题
10

求二叉树叶子最浅深度,
二叉树叶子次之深度
leetcode前两百
通配符模式的匹配
-最大子序列和 考虑边界和内存
最大序列乘积(
检测环形链表
内核态和用户态的区别,什么时候会陷入内核态,c访问空指针会不会进入内核态

  1. self-intro
  2. introduce your project
  3. From the perspective of tech, what is you strength?
  4. 第三个问题我答了自己会比较在意代码质量
  5. What do you think is important for high quality of you code?
  6. If you receive the code which is not live up to the standards you mentioned, what will you do?

删掉一个字符串中的所有IP地址

图片90度翻转。

完全背包问题

0-1背包问题
一棵树,实现序列化和反序列化。
表达式求值,只有求值
https://leetcode-cn.com/problems/coin-change-2/

考虑特殊输入
二维数组是否可以连通,1-有路, 0 无路
两个点的距离,求两个坐标的最短距离(单源最短路)
LRU
LFU
给只有一个0,1,2的数组排序
字符串压缩,考虑异常输入
大树相加,数据太大户不会爆掉内存
有序数组,找出缺失的一个数,比如1,2,3,5,缺失4

旋转图像
https://leetcode-cn.com/problems/rotate-image/
下一个更大元素
https://leetcode-cn.com/problems/next-greater-element-i/submissions/
https://www.nowcoder.com/practice/ae25fb47d34144a08a0f8ff67e8e7fb5?tpId=117&&tqId=37867&rp=1&ru=/activity/oj&qru=/ta/job-code-high/question-ranking

切分数组
https://leetcode-cn.com/problems/qie-fen-shu-zu/

二叉树公共祖先
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/
搜索二叉树公共祖先
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/submissions/
零钱兑换

翻转字符串 --常规题

给定一个无序链表和一个数字,把比这个数字大的放在后面,比这个数字
小的放在前面,要求稳定性。使用partition

对BST进行序列化和反序列化
https://leetcode-cn.com/problems/serialize-and-deserialize-bst/submissions/

岛屿数量–常规题

判断链表是否有环–

快排

二叉树排序

atoi实现

c++类,虚函数实现

new和malloc区别

class大小,包含virtual大小

虚表指针指向哪里?

进程和线程关系

强引用和弱引用

bfs问题,岛屿问题

链表翻转

LC200–岛屿
LC69=

L在这里插入图片描述113,LC1,是否为合法三角形

矩形从左上走到右下

归并排序的推导,还有实现

手写LRU

class LRUCache {
public:
    map<int,int> mp, vis; // 使用map存储键值 + 版本号机制
    queue<pair<int,int>> que;
    int cnt, cap, currSize;

    LRUCache(int capacity) {
        cap = capacity; // 容量
        cnt = 0;  // 用来位置版本号 
        currSize = 0; // 当前缓存的个数
    }
    
    int get(int key) {
        // 如果在visited中找不到key, return -1
        if (vis[key] == 0) {
            return -1;
        }

        // 一把更新,cnt用来维持版本号,保证每次版本号都不同
        que.push({key, vis[key] = ++ cnt});

        return mp[key];
    }
    
    void put(int key, int value) {
      // 如果当前的版本号和现在的版本号一样,说明没有被操作过,也就是最久没有被访问过的,需要被pop
        if(!vis[key]){
            while(currSize == cap){
                auto front = que.front();
                que.pop();
                if(vis[front.first] == front.second){
                    // 这里是把它降为0,而不是erase
                    vis[front.first] = 0;
                    --currSize;
                    break;
                }
            }
            ++currSize;
        }

        mp[key]=value;
        que.push({key,vis[key] =++cnt});
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值