3.100亿url,怎么看某个url已经存在(手写一个布隆过滤器即可)
4.100亿url,怎么求TopK(hash,然后小根堆)
6.算法:判断—棵二叉树是否是对称的
7.算法:有若干[30,50,100]优惠券,求给定一个数值求最优的方案。例如∶价格是40=>[30]80 =>[30,50].110=>[30,30,50] (dp)
Leetcode 1419 数青蛙
4.算法:最长合法的括号匹配 (Leetcode原题)
1. 字符串中数字位置逆序,比如 a132bcd456efg,逆序后应该是 a654bcd231efg。 (前后双指针,字母跳,数字翻转)
2. 二叉树最小层数,需要递归非递归两种方式 (非递归是BFS)
3. 多线程轮流打印 AB,需要先打印 A,再打印 B
1. 给一棵二叉树,返回最大和,唯一的约束就是不能访问相邻的节点(其实就是leetcode 337. 打家劫舍 III)
我在写这完代码后面试官说写一个testcase测一下,我又写了使用包含了空节点的前序遍历的二叉树反序列化,然后第一次跑结果不对,我怀疑二叉树构建的有问题,于是我又写了个二叉树的层次遍历,然后发现是前序遍历漏了个节点,加上去就好了。
2. 写一个LRU cache 因为我第一次面字节的时候没写出来这个,所以回去写了好几遍,所以印象深刻,很快就写出来了。面试官说看你代码能力还可以,就不用写测试用例了。二面结束。
=
然后就是一道智力题,掰巧克力,一块M*N的巧克力,要掰成1*1的巧克力最少需要掰几次,一次只能掰一块整块的巧克力。这道题我没思路,面试官屡次提示,最后在几乎已经把答案讲给我听的情况下我做出来了(其实式子我已经写了出来,但是没法证明,大部分时间都在想怎么证明)