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)

相关推荐
m0_706653232 分钟前
模板编译期排序算法
开发语言·c++·算法
历程里程碑3 分钟前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法
木井巳7 分钟前
【递归算法】验证二叉搜索树
java·算法·leetcode·深度优先·剪枝
m0_5613596711 分钟前
嵌入式C++加密库
开发语言·c++·算法
近津薪荼11 分钟前
优选算法——双指针专题7(单调性)
c++·学习·算法
j4455661119 分钟前
C++中的职责链模式实战
开发语言·c++·算法
m0_6860416123 分钟前
实时数据流处理
开发语言·c++·算法
波波侠830 分钟前
代码随想录算法训练营打卡第31天|56. 合并区间、738.单调递增的数字
算法
Snow_day.31 分钟前
有关线段树应用(1)
数据结构·算法·贪心算法·动态规划·图论
m0_5613596739 分钟前
C++模块接口设计
开发语言·c++·算法