LeetCode[简单] 136. 只出现一次的数字

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

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

思路

当 A 与 B 不同时,按位异或操作后所得新值某一位值将为1,反之为0;

0与任何值异或都为该值本身。

cs 复制代码
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)

相关推荐
Zachary_zlc1 分钟前
有向无环图检测算法和关键路径算法
算法
你撅嘴真丑3 分钟前
素数回文数的个数 与 求分数序列和
算法
Wuliwuliii11 分钟前
贡献延迟计算DP
数据结构·c++·算法·动态规划·dp
ysn1111115 分钟前
简单多边形三角剖分---耳切法(含源码)
算法
e疗AI产品之路16 分钟前
一文介绍Philips DXL心电图算法
算法·pan-tompkins·心电分析
YGGP22 分钟前
【Golang】LeetCode 21. 合并两个有序链表
leetcode·链表·golang
小袁顶风作案25 分钟前
leetcode力扣——135.分发糖果
算法·leetcode·职场和发展
橘颂TA36 分钟前
【Linux】从 “抢资源” 到 “优雅控场”:Linux 互斥锁的原理与 C++ RAII 封装实战(Ⅰ)
linux·运维·服务器·c++·算法
我命由我1234538 分钟前
开发中的英语积累 P25:Axis、Stroke、Corner、Interceptor、Declared、Internal
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法