当前位置: 首页 > article >正文

LeetCode136. 只出现一次的数字(2024冬季每日一题 38)

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例 1 :

输入:nums = [2,2,1]
输出:1

示例 2 :

输入:nums = [4,1,2,1,2]
输出:4

示例 3 :

输入:nums = [1]
输出:1

提示:

  • 1 < = n u m s . l e n g t h < = 3 ∗ 1 0 4 1 <= nums.length <= 3 * 10^4 1<=nums.length<=3104
  • − 3 ∗ 1 0 4 < = n u m s [ i ] < = 3 ∗ 1 0 4 -3 * 10^4 <= nums[i] <= 3 * 10^4 3104<=nums[i]<=3104

除了某个元素只出现一次以外,其余每个元素均出现两次。


思路:

  • 两个相同的数 异或 操作后,结果为 0(二进制相同位置的数相同,所有位置异或都为0)
  • 所以找到只出现一次的数,只需要将所有数字 异或 起来,最终的 x 结果就是只出现一次的数
class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int x = 0;
        for(int i = 0; i < nums.size(); i++)
            x ^= nums[i];
        return x;
    }
};

http://www.kler.cn/a/446872.html

相关文章:

  • ubuntu22.04编译安装Opencv4.8.0+Opencv-contrib4.8.0教程
  • Java图片拼接
  • APM32F411使用IIS外设驱动es8388实现自录自播
  • redis数据类型:list
  • 通义千问对接FreeSWITCH实现大模型呼叫中心
  • Java写URI网址唤醒APP小程序等NDEF信息
  • 基于SpringBoot+layui+html实现电影院售票系统【源码+数据库文件+包部署成功+答疑解惑问到会为止】
  • 相机(Camera)成像原理详解
  • JavaScript中,常用crypto模块进行rsa加密,crypto-js模块进行md5算法
  • 【数据库】SQL语句基础
  • Java中正则表达式的介绍、使用场景及示例代码
  • Java学习,输出数组元素
  • 31.设计模式
  • Element@2.15.14-tree checkStrictly 状态实现父项联动子项,实现节点自定义编辑、新增、删除功能
  • Java基础面试题17:GenericServlet和HttpServlet有什么区别?
  • 【Java】mac安装Java17(JDK17)
  • 前端数据持久化指南:LocalStorage、SessionStorage 等的区别与应用
  • 从零用java实现 小红书 springboot vue uniapp (4)个人主页优化
  • 首个!艾灵参编的工业边缘计算国家标准正式发布
  • Epic游戏使用mod
  • MySQL通过日志恢复数据的步骤
  • Java中的方法重写:深入解析与最佳实践
  • debian linux 连网自动调整时间 (报错 Unit systemd-timesyncd.service could not be found.)
  • .NET周刊【12月第2期 2024-12-08】
  • pytorch离线安装步骤
  • 中阳动态分散投资策略:构建多元化投资组合的科学路径