给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
我写的O(n^2)的笨方法:
class Solution { public int singleNumber(int[] nums) { for(int i=0;i<nums.length;i++){ boolean isFlag = true; for(int k=0;k<i;k++){ if(nums[i] == nums[k]){ isFlag = false; break; } } for(int j=i+1;j<nums.length;j++){ if(nums[i] == nums[j]){ isFlag = false; break; } } if(isFlag){ return nums[i]; } } return 0; } }
运用异或:
int a =0; for(int i:nums){ a^=i; } return a;