Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3]
return 2
.
当一个数组中的数都是出现两次,只有一个是单个时,找这个数可以用异或^,把所有数异或起来就是,因为异或自己本身得0,0异或任何数得本身。
这个题可以把数组和[0-n]组成一个数组,就可以用上边的方法了。
public class Solution { public int missingNumber(int[] nums) { int n = nums.length; int res = 0; for(int i = 0;i<n;i++) { res ^= (nums[i] ^ i); } res ^= n; return res; } }
时间: 2024-10-09 12:18:43