只出现一次的数字---异或妙解

题目

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

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

示例 1 :

**输入:**nums = 2,2,1

**输出:**1

示例 2 :

**输入:**nums = 4,1,2,1,2

**输出:**4

示例 3 :

**输入:**nums = 1

**输出:**1

提示:

  • 1 <= nums.length <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104
  • 除了某个元素只出现一次以外,其余每个元素均出现两次。

思路

实际上思路很简单,就是只有一个元素是只出现一次的,那么可以出现俩次的数字异或之后一定会抵消,因为相同的数字异或后为0,所以遍历一次全部异或即可

代码

java 复制代码
class Solution {
    public int singleNumber(int[] nums) {
        int single = 0;
        for (int num : nums) {
            single ^= num;
        }
        return single;
    }
}
相关推荐
晚风予卿云月几秒前
二分算法练习
数据结构·c++·算法·竞赛·算法随笔
菜菜的顾清寒5 分钟前
力扣HOT100(47) 二叉树的层序遍历
算法·leetcode·深度优先
周末也要写八哥6 分钟前
牛顿迭代Python代码实现
算法
KaMeidebaby20 分钟前
卡梅德生物技术快报|基因测序技术在 46,XY 性发育障碍变异筛查中的流程与数据分析
服务器·前端·数据库·人工智能·算法·数据挖掘·数据分析
ZengLiangYi22 分钟前
SourceAdapter 插件架构详解
javascript·算法·架构
妄想出头的工业炼药师30 分钟前
特征检测和特征筛选
算法·开源
cxr82832 分钟前
高分子复合材料 AI 逆向设计合——学证明、算法实现、验证数据与学术资源全集
人工智能·线性代数·算法
ZengLiangYi39 分钟前
如何解析 5 种完全不同格式的 AI 对话
javascript·人工智能·算法
计算机安禾43 分钟前
【算法设计与分析】第29篇:启发式与元启发式搜索方法综述
java·数据库·算法
我叫袁小陌1 小时前
数据结构详解与算法关联指南
算法