面试手撕算法汇总(持续更新)

所有题目都是从面经中提取而来,持续更新。
本人也是菜鸟一枚,帖子也会相应的发布自己对于题目的解法和看法,但是可能想得不够,也希望大家能够一起讨论,一起进步。

1.数组中找出所有重复数字?空间复杂度为O(1),时间复杂度最小?
实在没有O(1)的方法,只能实现O(n),欢迎讨论。
方案1:创建n个数字的数组,循环相加,将大于1的数字打印出来
方案2:map,先contains判断,存在就打印,不存在就put
2.一个二维数组只含0,1;将1围城的矩阵中所有的0的数字转换成1?
3.求链表中点?
4. 手写常用设计模式(单例)
饿汉懒汉的区别、好处、缺点都要会
这里可能会引申出单例的条件,详见:http://www.runoob.com/design-pattern/singleton-pattern.html
5.手写生产者消费者模式?
不解释,不理解的,先背住再好好理解
6.100个0到100之间的整数排序
7.two sum问题到k sum问题
8.旋转数组二分查找
9.算 a + b, 不能用加号或减号
位运算,大家百度一下就可以了
10. 数组中超过一半的数
11. 大文件100亿个数字,求前m大的数
12.两个有序数组,求第k个数
13.最大连续子数组和
基础题,贪心。
14.二维数组中,每个元素有个数字,求某一个点到任意一点的sum和(只能向右或者向下) dp记录到每个点的sum
15.手写快速排序算法,并解释过程。
不会的,直接背吧......
16.重建二叉树
17.二分查找
18.从字符串中“aecbcda”找出不重复的字符组成的顺序子串“aecbd”,用最优的时空复杂度。
19.判断一个链表是否有环(我回答快慢指针,因此引出下一个问题)
两个指针,一个走1步,一个走2步,龟兔赛跑问题
20.一个数组,有正有负,把正的移到右边,负的移到左边。
21.两个队列实现栈
《剑指Offer》原题
22.括号匹配
堆匹配
23.链表反转的操作,参数结构自己设计
24.一个数组,实现原地反转
25.一个只包含小写字母的字符串,去重生成一个只包含单一字母的字符串。例如“abadcab”变成"abdc",只让用最多一个额外的int变量
26.大数加法代码
27.推排序
不会的,直接背吧......
28.给一个字符串,由26个英文字母组成,判断其中有没有重复出现的元素,有返回true,没有返回false
桶排序,大于1 就返回ture

全部评论
很棒
点赞 回复 分享
发布于 2017-09-13 10:50
哈哈  贴出问题加代码那就更好啦!
点赞 回复 分享
发布于 2017-09-13 10:53
赞!
点赞 回复 分享
发布于 2017-09-13 10:55
顶楼主
点赞 回复 分享
发布于 2017-09-13 11:00
求大神贴出思路
点赞 回复 分享
发布于 2017-09-13 11:02
很棒  哈哈  贴出问题加代码那就更好啦!赞!顶楼主
点赞 回复 分享
发布于 2017-09-13 11:02
mark一下,等答案
点赞 回复 分享
发布于 2017-09-13 11:07
赞!!!!!!!!
点赞 回复 分享
发布于 2017-09-13 11:10
大佬求贴代码啊!
点赞 回复 分享
发布于 2017-09-13 11:11
妹子真厉害!
点赞 回复 分享
发布于 2017-09-13 11:42
第一题用非递归的方式实现堆排序,对原数组排序
点赞 回复 分享
发布于 2017-09-13 12:00
100个0到100之间的整数排序,有什么技巧吗
点赞 回复 分享
发布于 2017-09-13 12:56
好多剑指offer
点赞 回复 分享
发布于 2017-09-13 13:24
点赞 回复 分享
发布于 2017-09-13 23:35
赞一个
点赞 回复 分享
发布于 2017-09-15 00:35
老铁 25.一个只包含小写字母的字符串,去重生成一个只包含单一字母的字符串。例如“abadcab”变成"abdc",只让用最多一个额外的int变量。   这题有思路吗?讲讲啊
点赞 回复 分享
发布于 2017-09-20 22:03

相关推荐

#腾讯音乐26届实习# 2025.03.25一面 - 2025.03.26二面 - 2025.03.27显示HR面-2025.03.31没人约我hr面直接挂了,笑嘻了算法题:一面没有算法题,二面算法题↓/*** 有20个任务,每个任务里面做的事情是:睡眠2秒后,打印Hello World。* 使用拥有20个线程的线程池来执行这些任务,需要通过拥有5个许可的信号量来控制执行的并发*/import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;public class work {public static void main(String[] args) {ExecutorService executorService = Executors.newFixedThreadPool(20);Semaphore semaphore = new Semaphore(5);for (int i = 0; i < 20; i++) {executorService.submit(() -> {try {semaphore.acquire();try {Thread.sleep(2000);System.out.println("Hello World");} finally {semaphore.release();}} catch (InterruptedException e) {Thread.currentThread().interrupt();e.printStackTrace();}});}executorService.shutdown();}}技术面部分:一面:1、自我介绍2、实习分库分表逻辑,怎么保证分布式缓存和主存数据一致,对帐问题。3、常用的juc包,hashmap和concurrenthashmap异同,怎么解决哈希冲突4、优先级队列底层实现?5、红黑树如何删除结点?6、redis知道吧,说说你理解的redis,为什么mysql用b+树不用跳表呢?b+树相比其他索引结构有啥优势?7、mysql执行计划?8、三个表联表查询,一个表数据量巨大,怎么优化?9、实习长度和最早啥时候来,反问二面:1、自我介绍2、对于redis和mysql数据一致性有做事务性保证吗?3、怎么实现最终一致性4、咖啡因底层实现,写缓冲读缓冲异步数据清理说说,你用的本地缓存功能是什么?5、netty底层实现,rpc框架工作原理,netty三个线程模型6、怎么解决深度分页,left join和inner join区别7、ThreadLocal的实现跟我讲讲,怎么解决哈希冲突?插入时候遇到哈希冲突怎么办?8、ThreadLocal为什么会设计为弱引用(我的理解:ThreadLocalMap没有为外界提供取出和存放数据的API,我们所能获得数据的方式只有通过ThreadLocal类提供的API来间接的从ThreadLocalMap取出数据,所以如果不是弱引用,当我们用不了key的API也就无法从ThreadLocalMap里取出指定的数据)9、算法题如上面所示
查看16道真题和解析
点赞 评论 收藏
分享
评论
18
385
分享

创作者周榜

更多
牛客网
牛客企业服务