给你一个 非空 整数数组 nums
,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
思路
当 A 与 B 不同时,按位异或操作后所得新值某一位值将为1,反之为0;
0与任何值异或都为该值本身。
public class Solution {public int SingleNumber(int[] nums) {int result = 0;for(int i = 0; i < nums.Length; i++){result ^= nums[i];}return result;}
}
复杂度
时间复杂度:O(n)
空间复杂度:O(1)