最新面试高频算法题

本文深入探讨了多种经典算法问题,包括布隆过滤器在URL去重的应用、TopK问题的高效解决策略、二叉树的对称性判断、优惠券组合的动态规划求解、括号匹配的最长合法子串寻找、字符串中数字的逆序处理、二叉树最小层数的计算以及多线程同步打印等。同时,文章还分享了实际面试经历中的案例分析,如打家劫舍III问题的解决思路和LRU缓存的设计实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的巧克力最少需要掰几次,一次只能掰一块整块的巧克力。这道题我没思路,面试官屡次提示,最后在几乎已经把答案讲给我听的情况下我做出来了(其实式子我已经写了出来,但是没法证明,大部分时间都在想怎么证明)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值