力扣136. 只出现一次的数字

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

代码:

cpp 复制代码
class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int res = 0;

        for(int i = 0; i < nums.size(); i++){
            res = res ^ nums[i];
        }

        return res;
    }
};

解题思路:

(1)可以count()函数进行求解,也可以100%通过,但时间较长。

(2)这里使用二进制异或运算的特性,任何数异或0等于本身。

(3)两个相同的数异或是0。

(4)将所有元素进行异或,最后的结果是只出现一次的元素。

相关推荐
随意起个昵称15 分钟前
【双指针】供暖器
算法
倒霉蛋小马18 分钟前
最小二乘法拟合直线,用线性回归法、梯度下降法实现
算法·最小二乘法·直线
codists41 分钟前
《算法导论(第4版)》阅读笔记:p82-p82
算法
埃菲尔铁塔_CV算法1 小时前
深度学习驱动下的目标检测技术:原理、算法与应用创新
深度学习·算法·目标检测
Dream it possible!1 小时前
LeetCode 热题 100_寻找重复数(100_287_中等_C++)(技巧)(暴力解法;哈希集合;二分查找)
c++·leetcode·哈希算法
float_com1 小时前
【背包dp-----分组背包】------(标准的分组背包【可以不装满的 最大价值】)
算法·动态规划
丶Darling.2 小时前
Day119 | 灵神 | 二叉树 | 二叉树的最近共公共祖先
数据结构·c++·算法·二叉树
L_cl3 小时前
【Python 算法零基础 3.递推】
算法
int型码农3 小时前
数据结构第七章(四)-B树和B+树
数据结构·b树·算法·b+树
先做个垃圾出来………4 小时前
汉明距离(Hamming Distance)
开发语言·python·算法