268. Missing number

int missingNumber(int *nums, int numsSize) {
  int res = numsSize;
  for (int i = 0; i < numsSize; i++) {
    res ^= i ^ nums[i];
  }
  return res;
}
#include <vector>

using namespace std;

class Solution {
public:
  int missingNumber(vector<int> &nums) {
    int res = nums.size();
    for (int i = 0; i < nums.size(); i++) {
      res ^= i ^ nums[i];
    }
    return res;
  }
};
package bitmanipulation

func missingNumber(nums []int) int {
    res := len(nums)
    for i, n := range nums {
        res ^= i ^ n
    }
    return res
}
class Solution {
    public int missingNumber(int[] nums) {
        int res = nums.length;
        for (int i = 0; i < nums.length; i++) {
            res ^= i ^ nums[i];
        }
        return res;
    }
}
/**
 * @param {number[]} nums
 * @return {number}
 */
var missingNumber = function (nums) {
  let res = nums.length;
  for (let i = 0; i < nums.length; i++) {
    res ^= i ^ nums[i];
  }
  return res;
};
from typing import List


class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        res = len(nums)
        for i, n in enumerate(nums):
            res ^= i ^ n
        return res
impl Solution {
    pub fn missing_number(nums: Vec<i32>) -> i32 {
        let mut res = nums.len() as i32;
        for (i, &n) in nums.iter().enumerate() {
            res ^= i as i32 ^ n;
        }
        res
    }
}