题意如题 找到 1 ~ N N 个数字中缺少的一个数字
方法 1:求和
算出 1 + 2 + ... + N 的和然后减去数组中 N - 1 个数字的和
int missNum(int N, int a[maxn]) { long long sum = 0; for(int i = 0; i < N - 1; i ++) sum += a[i]; return (1 + N) * N / 2 - sum; }
这个方法的缺点是有可能会出现溢出 时间复杂度是 O(N)
方法2:位运算
用与运算$ a ^ a = 0$ a ^ a ^ b = b
原文:https://www.cnblogs.com/zlrrrr/p/13271816.html