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

数组中重复的数字

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; }

全部评论

相关推荐

菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务