丢失的数字(268-java)
public class LC169_268_missingNumber {
public static int missingNumber(int[] nums) {
int ans = nums.length;
for (int i = 0; i < nums.length; i++) {
ans ^= i;
ans ^= nums[i];
}
return ans;
}
public int missingNumber22(int[] nums) {
Set<Integer> set = new HashSet<>();
int len = nums.length;
for (int i = 0; i < len; ++i) {
set.add(nums[i]);
}
int i;
for (i = 0; i <= len; ++i) {
if (!set.contains(i)) {
break;
}
}
return i;
}
public int missingNumber66(int[] nums) {
int sum = 0;
int len = nums.length;
for (int num : nums) {
sum += num;
}
return len * (len + 1) / 2 - sum;
}
public static void main(String[] args) {
System.out.println(missingNumber(new int[]{3, 0, 1}));
}
}