上次很多同学反馈,说是在leetcode找不到剑指offer的题集了,起初感觉不相信,我上去看了一下,还真是,力扣把剑指offer哪个集合好像给删了找不到了,但是如果去牛客网刷的话必须要购买他们的版权书才能继续做题,不然连题都看不到。
但是好消息是力扣只是删除了剑指offer的集合,里面的75道题并没有删除,力扣依旧可以找到,只是很多同学不知道哪些题才是剑指offer的题,你别找了,直接来跟着我刷吧,老规矩还是每天一道,坚持下去相信有些大学生粉丝暑假还是能找到一份不错的实习的。
当然再多说一嘴哈,有条件的同学可以去买一下牛客的那个版权书在牛客刷,然后直接在我这看解法,当然直接在我这里看题也没有啥问题,因为很多公司面试的做题环境就是牛客(有些学生粉丝不知道),你们可以提前熟悉一下,基本面试题都是我带大家刷的力扣热题100和剑指offer的75道题,建议刷两遍!(ps:想找工作实习的同学,文末有面试八股和简历模板)
好了废话不多说,直接开始正文:
题目:
语言我还是选Java吧,Java基本上可以覆盖很多粉丝。
刷题一定要注意输入和输出的要求,面试的时候可没人听你解释也没人看你代码,错了就是错了!
他这里要求你输出0或5,也就是这个数组你找到一个重复的输出就好,算法要以结果为导向,你别想着5是重复的0也是重复的那就要把0和5都输出,注意”0和5“与“0或5”是两个概念,你如果多输出了那就是错了!你着想了!只一个就好!!!
分析:
这道题说穿了其实就是找到数组里重复的元素!我就用最简单的方法写吧,时间空间复杂度日后再议!
解题:
首先,标准默认格式是这样:
直接往进写就好:
测试结果:
可复制代码块:
class Solution {
public int findRepeatDocument(int[] documents) {
Set<Integer> hmap = new HashSet<>();
for(int i = 0;i < documents.length;i++){
if (!hmap.add(documents[i])) // 尝试将当前数字添加到HashSet中
return documents[i]; // 如果当前数字已经存在于HashSet中,说明它是重复的,直接返回这个数字
}
return -1; // 如果没有找到重复的数字,返回-1
}
}
文末福利:
关注公号【猿小馆】,左下角资料模块有Java面试详细资料和简历模板,直接分享网盘链接。
公号里也有我的历史文章和交流分享。
写在最后:希望大家点个赞点个关注,这对up真的很重要,谢谢啦!
ps:赶紧做题去,有不会的直接私我或者公号直接问我,看到就会回复的!做完的评论区打个卡!
最重要的话再说一遍:不要光顾着刷数量,最重要的是要会做,面试官不会看你做了多少题目,他看的是你会不会,尤其是要去找实习的朋友,一定注意要会做!要会做!要会做!