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;
    }
};
相关推荐
王老师青少年编程11 小时前
csp信奥赛C++标准模板库STL(12):C++ STL 中的 next_permutation详解
c++·stl·排列·标准模板库·csp·信奥赛·permutation
LYFlied11 小时前
【每日算法】LeetCode 136. 只出现一次的数字
前端·算法·leetcode·面试·职场和发展
不忘不弃11 小时前
十进制数转换为二进制数
开发语言
唯唯qwe-11 小时前
Day23:动态规划 | 爬楼梯,不同路径,拆分
算法·leetcode·动态规划
深盾科技12 小时前
融合C++与Python:兼顾开发效率与运行性能
java·c++·python
csbysj202012 小时前
jQuery Mobile 触摸事件
开发语言
代码村新手12 小时前
C++-入门
开发语言·c++
来深圳12 小时前
leetcode 739. 每日温度
java·算法·leetcode
神舟之光12 小时前
VSCode编译运行C/C++程序问题及解决方法
开发语言·c++
坐怀不乱杯魂12 小时前
C++ STL unordered_map/set 实现
开发语言·c++