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)

相关推荐
芬加达2 分钟前
leetcode221 最大正方形
java·数据结构·算法
知无不研6 分钟前
实现一个整形栈
c语言·数据结构·c++·算法
夏鹏今天学习了吗8 分钟前
【LeetCode热题100(98/100)】子集
算法·leetcode·深度优先
DuHz10 分钟前
用于汽车应用的数字码调制(DCM)雷达白皮书精读
论文阅读·算法·自动驾驶·汽车·信息与通信·信号处理
李昊哲小课14 分钟前
机器学习核心概念与经典算法全解析
人工智能·算法·机器学习·scikit-learn
风筝在晴天搁浅1 小时前
hot100 437.路径总和Ⅲ
算法
lixzest1 小时前
软件工程师汇报能力提升工具包
职场和发展
sprintzer1 小时前
1.16-1.25力扣排序刷题
算法·leetcode·职场和发展
老鼠只爱大米1 小时前
LeetCode经典算法面试题 #138:随机链表的复制(节点交织法、哈希表法等五种实现方案解析)
算法·leetcode·链表·随机链表复制·节点交织法
TracyCoder1231 小时前
LeetCode Hot100(11/100)——56. 合并区间
算法·leetcode