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

数组中重复的数字

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

全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务