题干
给定一个非空数组,除了某元素只出现一次,其余元素都出现两次。找出那个只出现一次的元素。(不使用额外空间、线性时间复杂第)
解法
使用位运算,两两异或,最后剩下的就是那个只出现一次的元素
位运算特点
a ^ a = 0;
a ^ 0 = a;
a ^ b ^ a = a ^ a ^ b
代码
1 class Solution { 2 public int singleNumber(int[] nums) { 3 if(nums.length == 1){ 4 return nums[0]; 5 } 6 int res = nums[0]; 7 for(int i = 1; i < nums.length; i ++ ){ 8 res = res ^ nums[i]; 9 } 10 return res; 11 } 12 }
标签:return,数字,nums,int,res,元素,基础,力扣,length From: https://www.cnblogs.com/lzolearning/p/16759137.html