*코드
class Solution {
public int missingNumber(int[] nums) {
int n = nums.length;
int xor = n;
for (int i = 0; i < n; i++) {
xor ^= i ^ nums[i];
}
return xor;
}
}
*리뷰
배열의 길이 n을 초기 XOR 값으로 설정합니다.
0부터 n-1까지의 인덱스와 nums 배열의 각 요소에 대해 XOR 연산을 수행합니다.
결과적으로 누락된 숫자만 XOR 값에 남게 됩니다.
이 방법은 XOR 연산의 특성을 이용합니다. 같은 숫자를 두 번 XOR하면 0이 되고, 0과 어떤 숫자를 XOR하면 그 숫자 자체가 됩니다. 따라서 0부터 n까지의 모든 숫자와 nums 배열의 모든 요소를 XOR하면, 누락된 숫자만 남게 됩니다.
이 해결책은 주어진 제약 조건을 모두 만족하며, O(n) 시간 복잡도와 O(1) 공간 복잡도를 달성합니다.