leetcode_middle_7_260. Single Number III
2017-02-01 10:12
411 查看
题意:
一个数列,有且仅有两个数字出现1次,其它都出现2次,找出出现1次的数。
分析:
我们要判断一个数字只出现了一次,就是要发现它曾经出现过。由于数值的不限制,就不能利用角标。
所以我们必要的考虑一个额外的空间,一个数组,我们遍历给定的数组,将数字放入额外数组,只要额外数组中出现过,就将它删除(因为就可以排除它了,以后就不用参与查找了)。,如果没出现过,就放入。由于我们是要找出现一次的数字,考虑采用数据结构set
public class Solution {
public int[] singleNumber(int[] nums) {
int[] arr = new int[2];
HashSet<Integer> hs = new HashSet<Integer>();
for(int i = 0; i<nums.length; i++){
if(hs.contains(nums[i])){
hs.remove(nums[i]);
}
else{
hs.add(nums[i]);
}
}
Iterator<Integer> iterator = hs.iterator();
arr[0] = iterator.next();
arr[1] = iterator.next();
return arr;
}
}
一个数列,有且仅有两个数字出现1次,其它都出现2次,找出出现1次的数。
分析:
我们要判断一个数字只出现了一次,就是要发现它曾经出现过。由于数值的不限制,就不能利用角标。
所以我们必要的考虑一个额外的空间,一个数组,我们遍历给定的数组,将数字放入额外数组,只要额外数组中出现过,就将它删除(因为就可以排除它了,以后就不用参与查找了)。,如果没出现过,就放入。由于我们是要找出现一次的数字,考虑采用数据结构set
public class Solution {
public int[] singleNumber(int[] nums) {
int[] arr = new int[2];
HashSet<Integer> hs = new HashSet<Integer>();
for(int i = 0; i<nums.length; i++){
if(hs.contains(nums[i])){
hs.remove(nums[i]);
}
else{
hs.add(nums[i]);
}
}
Iterator<Integer> iterator = hs.iterator();
arr[0] = iterator.next();
arr[1] = iterator.next();
return arr;
}
}
相关文章推荐
- [leetcode]--260. Single Number III
- LeetCode 260. Single Number III
- [LeetCode] 260. Single Number III 单独数 III
- LeetCode 260. Single Number III
- 【LeetCode】-- 260. Single Number III
- [leetcode] 260. Single Number III
- 【leetcode】260. Single Number III
- LeetCode 260. Single Number III
- 【LeetCode】260. Single Number III 解题报告(Python)
- [leetcode]260. Single Number III
- 【LeetCode】260. Single Number III
- leetcode 260. Single Number III-寻找单身狗|位运算
- LeetCode--137. Single Number II && 260. Single Number III之暴力搜法
- Leetcode 260. Single Number III
- LeetCode 260. Single Number III (数组查重)
- 【leetcode】 260. Single Number III
- [LeetCode] 260. Single Number III
- leetcode-260. Single Number III
- leetcode260. Single Number III
- LCP260 LeetCode 260. Single Number III