码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 136. 只出现一次的数字



    136. 只出现一次的数字
    难度: 简单
    来源: 每日一题 2023.10.14

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

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

    示例 1 :

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

    示例 2 :

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

    示例 3 :

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

    提示:

    • 1 <= nums.length <= 3 * 10^4
    • -3 * 10^4 <= nums[i] <= 3 * 10^4
    • 除了某个元素只出现一次以外,其余每个元素均出现两次。
    class Solution {
        public int singleNumber(int[] nums) {
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    分析与题解

    • 位运算

      先说答案, 这个题目使用的位运算是 异或运算.

      异或运算 的特点是当两个相同的数进行 异或运算 则为0.

      3355846 ^ 3355846 = 0;
      
      • 1

      由于该题目有且只有一个数字是单个, 其他数字都是成双成对, 所以我们把所有数字异或操作, 那么就会得到我们想要的结果.

      了解完整体的思路之后, 我们一起看一下整体逻辑代码.

      class Solution {
          public int singleNumber(int[] nums) {
              int result = 0;
              for(int i : nums) {
                  result ^= i;
              }
              return result;
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9

      复杂度分析:

      • 时间复杂度: O(n), 一次遍历循环, 时间复杂度与数组长度相关, 成线性关系.
      • 空间复杂度: O(1), 常量级别的空间复杂度.

      结果如下所示.

  • 相关阅读:
    C#实现 javascript中的 charCodeAt
    【软件测试】测试人的职责,我就是不当背锅侠......
    vue之使用IntersectionObserver API实现封装滚动动画组件
    springboot医院预约挂号系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT
    微软表示Visual Studio的IDE即日起开启“退休”倒计时
    什么测试自动化测试?
    华为配置AP接入GPON网络配置示例
    Redis分布式锁
    通过生产环境流量录制/线下回放 配合基于云原生的灰度发布 实现保质保量的持续集成
    P3613 【深基15.例2】寄包柜题解
  • 原文地址:https://blog.csdn.net/qq_33591200/article/details/133853406
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号