题解 | #数组中重复的数字#

数组中重复的数字

http://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524

public int duplicate (int[] numbers) { HashMap<Integer,Boolean> map=new HashMap<>();//先建立一个HashMap,它存储的是双列数据,即键值和值是一一对应的,如果一个数字重复了,那么可以将原本是True的值改成False.再根据键值进行增强for循环来找出value是false的,那么就是重复的键值对应的value. for(int i=0;i<numbers.length;i++){ map.put(numbers[i] ,!map.containsKey(numbers[i]) ); }//刚开始把数组的数字put进map的时候,value初始值都是True,那么一旦发现重复,会找到那个key覆盖原始的value为false //遍历HashMap集合 // Set nums=map.keySet();//用keySet方法可以得到map的键值的Set集合 for(Integer k: map.keySet(){ if(!map.get(k)) return k; } return -1; }

全部评论

相关推荐

昨天 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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