C++
class Solution {
public:
int singleNumber(vector<int>& nums) {
int result=nums[0];
for(int i=1;i<nums.size();i++)
{
result=result^nums[i];
}
return result;
}
};
Java
public class Solution {
public int singleNumber(int[] nums) {
int result=nums[0];
for(int i=1;i<nums.length;i++)
{
result=result^nums[i];
}
return result;
}
}
Javascript
/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function(nums) {
var result=nums[0];
for(var i=1;i<nums.length;i++)
{
result=result^nums[i];
}
return result;
};
上述为最优解,时间复杂度O(n)
位运算原理
0^N=N
N^N=0
每一位做异或操作后累加