面试40+总结下面试手撕的题目

本篇为本人实习+秋招面试被考到的手撕算法题和编码题总结

首先是算法题:
1. 算法题部分,有很多题是非常高频的,仅仅从我个人的面试体验就能看出来,最为突出的就是LRU,到了最后我已经可以在8分钟以内写完一次LRU了
2. hot100在其中的比例为7/20,但是如果算上重复的,那就超过50%了;另外还会有一些题目是从hot100的做题思想就能拓展出去的
3. 无他,唯手熟尔
需要编码的场景题通常涉及几个方面的思想:外部多路归并排序;位运算;拒绝采样;大模拟;特殊数据结构
有一说一在面试后,我的这方面思想也得到了很大的提升

⭐算法题(除去重复题目,共20道):
➡️ 打家劫舍(力扣No.198,hot100,简单)
➡️ 树的路径总和 ×2(力扣No.112,简单)
➡️ LRU缓存 ×5(力扣No.146,hot100,中等)
➡️ 最小栈 (力扣No.155,hot100,中等)
➡️ 重排链表 ×2(力扣No.143,中等)
➡️ 螺旋矩阵II(力扣No.59,中等)
➡️ 最大子数组和(力扣No.53,中等)
➡️ 合并区间 ×2(力扣No.56,hot100,中等)
➡️ 岛屿数量 ×2(力扣No.200,中等)
➡️ 二叉树的层序遍历 ×2(力扣No.102,hot100,中等)
➡️ 寻找峰值(力扣No.162,中等)
➡️ 翻转链表II(力扣No.92,中等)
➡️ 快排 ×2(中等)
➡️ 数组中第k大的数,要求堆排序思想写 ×2次(力扣No.215,hot100,中等)
➡️ 字符串中最长无重复字符的子串(力扣No.3,hot100,中等)
➡️ 分发糖果(力扣No.135,困难)
➡️ 小于n的最大数(字节高频题,非力扣,困难)
➡️ 寻找旋转排序数组中的最小值(力扣No.153,中等)
➡️ 整数反转(No.7,中等)
➡️ n个六面的骰子,扔一次之后和为k的概率是多少(中等)

⭐场景模拟题:
➡️ 两个线程交替输出1-100
➡️ 两个复杂字典,如何将字典1通过一些规定好的操作变成字典2
➡️ 长为8位的无重复大量数据,如何从小到大输出?如果内存不够一次全部读入呢?
➡️ 如果有10亿个32位的整数,如何找出那些只出现过一次的数?内存有限,无法一次性读入全部数据,另外时间复杂度越低越好

⭐特殊题:
➡️ 实现一个无锁的线程安全的循环队列 ×2,一次Java一次Go
➡️ 给定一个数组,如何用最小的比较次数获得最大最小值
➡️ 有一个rand函数,生成1的概率是p,0的概率是1-p,那么如何用它生成一个rand2(),使得生成1和0的概率都是0.5
➡️ 用rand7()函数构造函数rand10()
➡️ 带超时时间的LRU缓存
➡️ 实现一个单例模式

加油💪🏻祝大家都有自己满意的offer!

#发面经攒人品##后端##java##秋招##offer决赛圈,我是怎么选的#
全部评论
大佬,阿里云转正后,别的公司问你转正情况怎么回答呢
点赞 回复 分享
发布于 10-25 09:34 北京
hot100刷了一半多,自己做一次,但感觉第二天就又忘了,差不多半背的状态,感觉出点其他的就不会了
点赞 回复 分享
发布于 10-22 22:49 河南
太牛了哥,我hot100才刷了一半,明天有个面试,按你的来突击了。。
点赞 回复 分享
发布于 10-22 22:00 上海
点赞 回复 分享
发布于 10-21 18:58 北京

相关推荐

10-22 09:46
已编辑
江苏大学 Java
📍面试公司:智识神工🕐面试时间:10.20投递并约面,10.21面试💻面试岗位:JAVA后端实习生❓面试问题:(项目是12306+点评)讲讲这个面向对象具体是一个什么样的思路。在你的理解中什么可以成为对象,什么不能成为对象。mysql中的锁机制。那常见的锁有哪些呢?然后还有一些跟mysql相关的锁,你对此有一些了解吗?Mysql索引相关的知识,你可以为我们简单讲讲。使用mysql的时候,数据表设计有相关了解吗?就比如说你的项目经历中的铁路购票系统的数据表设计是你做的吗?既然提到分库分表了,那分库分表的目的是什么?那分库分表需要注意什么?要考虑ID它不能重复,那么不能重复的这个ID我们会一般使用什么作为主键呢?分库分表的形式有哪几种呢?可以简单的用一句话表述redis具体是什么吗?Redis一般用来存储什么信息呢?既然redis需要存储一些常用数据的,如果常用数据过多的话,会引发redis的击穿,穿透,雪崩相关的知识你了解吗?在你的项目经历中有遇到过真实的情况吗?JUC并发编程中的各种锁机制,可以简单为我讲解一下。threadlocal也通常被用来存储一些像存储一些暂时性的数据信息,还有常访问的数据信息。那threadlocal和redis有什么差别呢?你这么说也对,但是就这个比如说你的第二个项目,生活优选项目来说,你使用了在threadlocal配合拦截器进行token校验,那么你是否还要将这个token放入redis中呢?JVM的常见垃圾回收算法简单讲讲吗?复制算法相较于上下两个算法的优点在哪里?spring boot和spring cloud事实上一个指的是单体微服务,另外一个指的是多个微服务共同组成的服务框架。那你了解服务和服务之间的通信机制吗?在使用rocket MQ的时候,死信队列如何处理?简单讲讲这个设计模式中工厂模式和策略模式的异同吧。在项目经历中你提到了数据库和缓存之间的数据一致性,通过使用这个binlog和RocketMQ配合完成。那数据库和缓存之间的数据一致性还有什么其他方法可以实现?简单讲讲布隆过滤器。那它的布隆过滤器检测结果的特性是什么呢?那你给我简单讲讲这个仿12306的铁路购票系统中已完成的功能。我想知道的是具体的功能点,而不是说你用了什么工具,实现了什么结果。所以你是自己新建了一个购票接口,还是在原始代码的基础上对这个接口进行了增强。使用redis完成这个购票令牌分配,使用的是令牌桶对吧?那你是如何应对海量用户的购票请求的呢?你的限流以及最后的这个令牌分配的方式。那这个方式剩下的那些没有拿到令牌的用户的请求是被挂起吗?那挂起过久之后,它不就直接进入死信队列了吗?现在有一个场景是这样的,我现在有大量的用户表单需要上传,然后这个表单里涉及到很多的字段,然后具体的字段内容包含文件。然后同一时刻,因为它的它是一个企业级的功能,所以同一时刻会有很多的账号同时上传这些表单数据。然后我现在要实现这个功能,你帮我做一个设计。🙌面试感想:boss沟通近300+,只有这家约面,公司好像是用自研ai辅助编程的.第一次面试很紧张,后面问到不熟悉的问题人都哆嗦了,不过收获挺大的,查缺补漏了很多,面试官给了很好的学习建议
发面经攒人品
点赞 评论 收藏
分享
评论
8
58
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务