C++ 只出现一次的数字 - 力扣(LeetCode)

点击链接即可查看题目:136. 只出现一次的数字 - 力扣(LeetCode)

一、题目

给你一个 非空 整数数组 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
  • 除了某个元素只出现一次以外,其余每个元素均出现两次。

二、代码以及解题思路

把vector里面的每个数字进行异或,得到的结果就是只出现一次的数字;

异或:

相同数字异或为0;

cpp 复制代码
class Solution {
public:
    int singleNumber(vector<int>& nums) 
    {
        int ret = 0;
        for(auto e : nums)
        {
            ret ^= e;
        }
        return ret;
    }
};
相关推荐
言乐614 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
wabs66615 小时前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
cui_ruicheng15 小时前
Python从入门到实战(六):非序列容器
开发语言·python
小小龙学IT15 小时前
C++ 并发编程深度解析:从内存模型到无锁数据结构
数据结构·c++
西西学代码15 小时前
Flutter---底部导航栏(2)
开发语言·javascript·flutter
legendary_16315 小时前
SINK芯片:Type-C统一供电时代的小家电核心方案
c语言·开发语言·人工智能·智能手机
momo15 小时前
JAVA基础知识
java·开发语言
_Doubletful15 小时前
妙用位运算:解构汉明距离至100%(提供分析与多解)
c语言·算法·leetcode
凯瑟琳.奥古斯特15 小时前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展