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;
    }
};
相关推荐
蓝天扶光2 分钟前
C++算法第十一天
开发语言·c++·算法
从以前2 分钟前
python练习:“互联网 +” 时代的出租车资源配置的数学建模(一)
开发语言·javascript·人工智能·python·算法·数学建模
Eiceblue3 分钟前
用Python在Excel工作表中创建、修改及删除表格区域
开发语言·vscode·python·pycharm·数据分析·excel
安全系统学习10 分钟前
网络安全怎么学习
运维·开发语言·网络·安全·web安全·网络安全·php
潜意识起点24 分钟前
【潜意识Java】了解并详细分析Java与AIGC的结合应用和使用方式
java·开发语言·aigc
全栈老实人_36 分钟前
社区生活超市系统|Java|SSM|JSP|
java·开发语言·tomcat·maven
余生H1 小时前
写给Pythoner的前端进阶指南(三):JavaScript面向对象编程-类、继承、多态和封装、this
开发语言·前端·javascript·python
两水先木示1 小时前
【Unity3D】无限循环列表(扩展版)
java·开发语言·junit
小白学大数据1 小时前
优化Lua-cURL:减少网络请求延迟的实用方法
开发语言·网络·爬虫·junit·lua
冒泡P1 小时前
【Lua热更新】下篇 -- 更新中
开发语言·unity·c#·游戏引擎·lua