136. 只出现一次的数字 --力扣 --JAVA
题目
给你一个 非空 整数数组
nums
,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
解题思路
- 相同值进行异或运算的结果为0;
- 对整个数组进行异或运算,最后常量的值即为只出现一次的元素。
代码展示
class Solution {public int singleNumber(int[] nums) {int x = 0;for (int num : nums) // 1. 遍历 nums 执行异或运算x ^= num;return x; // 2. 返回出现一次的数字 x}
}