136. 只出现一次的数字 --力扣 --JAVA

题目

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

解题思路

  1. 相同值进行异或运算的结果为0;
  2. 对整个数组进行异或运算,最后常量的值即为只出现一次的元素。

代码展示

class Solution {
    public int singleNumber(int[] nums) {
        int x = 0;
        for (int num : nums)  // 1. 遍历 nums 执行异或运算
            x ^= num;
        return x;            // 2. 返回出现一次的数字 x
    }
}

你可能感兴趣的:(力扣练习,算法,数据结构)