Set Mismatch
给一个数组, 里面是从1到n, 但是有一个元素重复, 并且少一个元素, 找到重复的和丢失的数. 这个我用的是map 存一下找到了几个数, 我看有很多做法, 这个属于一般的解法.
class Solution {
public int[] findErrorNums(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
int m = -1;
int d = -1;
for(int n : nums) {
map.put(n, map.getOrDefault(n, 0)+1);
}
for(int i = 1; i <= nums.length; i++) {
if(map.get(i) == null) {
m = i;
} else if(map.get(i) == 2) {
d = i;
}
}
return new int[]{d, m};
}
}