数字重复问题
961. 在长度 2N 的数组中找出重复 N 次的元素
给你一个整数数组 nums ,该数组具有以下属性:
nums.length == 2 * n.
nums 包含 n + 1 个 不同的 元素
nums 中恰有一个元素重复 n 次
找出并返回重复了 n 次的那个元素。
class Solution {
public int repeatedNTimes(int[] nums) {
Set<Integer> result = new HashSet<Integer>();
for(int cur:nums){
if(result.contains(cur))
return cur;
else
result.add(cur);
}
return -1;
}
}
136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?(位运算)
class Solution {
public int singleNumber(int[] nums) {
int ans = 0;
for(int x :nums){
ans ^= x;
}
return ans;
}
}
浙公网安备 33010602011771号