leetcode136.只出现一次的数字
解题思路:异或运算的特性
异或运算(^
)有三个关键性质,非常适合解决该问题:
- 任何数与自身异或结果为 0:
a ^ a = 0
- 任何数与 0 异或结果为自身:
a ^ 0 = a
- 异或运算满足交换律和结合律:
a ^ b ^ c = a ^ c ^ b
由于数组中除目标元素外,其余元素均出现两次,根据上述性质:
- 所有出现两次的元素异或后结果为 0(
a ^ a = 0
)。 - 最终剩下的结果就是只出现一次的元素(
0 ^ 目标元素 = 目标元素
)。
class Solution {public int singleNumber(int[] nums) {int result = 0;for (int num : nums) {result ^= num;}return result;}
}