题目描述:
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。
示例 :
输入: [1,2,1,3,2,5]
输出: [3,5]
注意:
结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。
你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?
不考虑其他因素直接撸出的效率不高的代码
class Solution {
public int[] singleNumber(int[] nums) {
Map<Integer, Integer> temMap = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
temMap.put(nums[i], temMap.getOrDefault(nums[i], 0) + 1);
}
int result[] = new int[2];
int index = 0;
for (Map.Entry<Integer, Integer>i : temMap.entrySet()) {
if(i.getValue() == 1){
result[index] = i.getKey();
index ++;
}
}
return result;
}
}
考虑一下这个思路
没什么思路感觉,哎,头脑转不起来了