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

LeetCode hot 100—只出现一次的数字

题目

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

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

示例

示例 1 :

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

        输出:1

示例 2 :

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

        输出:4

示例 3 :

        输入:nums = [1]

        输出:1

分析

可以利用异或运算的特性来解决这个问题。

我们可以对数组中的所有元素进行异或运算,由于除了一个元素只出现一次,其余元素都出现两次,那么相同元素异或的结果为 0,最终异或的结果就是只出现一次的那个元素。

技巧——位运算法

时间复杂度:O(n), n 是数组的长度

空间复杂度:O(1)

class Solution {
public:
    int singleNumber(std::vector<int>& nums) {
        int result = 0;
        for (int num : nums) {
            result ^= num;
        }
        return result;
    }
};  

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

相关文章:

  • 目标检测YOLO实战应用案例100讲-面向交通复杂目标场景的机器视觉检测技术研究(续)
  • 初识Brainstorm(matlab)
  • 2025年汽车加气站操作工考试精选题库
  • 数据库的两种模式
  • L1-005-008
  • 掌握 Shopee 商品数据:用爬虫解锁无限商机
  • 鸿蒙NEXT开发之开屏广告实现
  • 力扣hot100——三数之和(双指针)
  • SVN 泄露
  • 从模拟到现实:Sensodrive高精度力反馈技术赋能物流运输的高效与安全
  • 【OCR】使用Umi-OCR进行PDF文档的光学字符识别
  • 视频推拉流EasyDSS点播平台云端录像播放异常的问题排查与解决
  • Git 使用笔记
  • Redis常用数据类型深度解析:从理论到最佳实践
  • 宇树科技纯技能要求总结
  • 群体智能优化算法-牛顿-拉夫逊优化算法(Newton-Raphson-Based Optimizer, NRBO,含Matlab源代码)
  • 企业数字化20项目规划建设方案微服务场景与数据应用(50页PPT)(文末有下载方式)
  • 图解AUTOSAR_CP_SOMEIP_TransportProtocol
  • TCP/Socket
  • lua垃圾回收