线性表--只出现一次的数字(Single Number)

找出只出现一次的数字 一个给定的正整数数组,数组中有的数字有重复,找出数组中没有重复的数 立即下载

题目描述:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:
输入: [2,2,1]
输出: 1

示例 2:
输入: [4,1,2,1,2]
输出: 4

解题思路:
关于这道题目,其实可以有很多思路来解决,比如对数组进行排序然后遍历的方式进行查找,或者通过构建hashmap/map辅助数据结构的方式进行查找等……
这里介绍一个比较巧妙的方式,可以通过异或的方式进行查找,了解了此方法可以扩宽视野,在实际工作中位操作往往是效率最高的方式。

参考代码:

func singleNumber(nums []int) int {

    if len(nums) == 0 {
        return 0
    }

    var single = nums[0]

    for i := 1; i < len(nums); i++ {
        single ^= nums[i]
    }

    return single
}
十大排序算法详解(一)冒泡排序、选择排序、插入排序、快速排序、希尔排序 冒泡排序、选择排序、插入排序、快速排序、希尔排序 阅读详情

相关推荐

基于微信小程序的扫码签到系统源码

大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。签到管理:新增签到,点击查看码展示二维码(有时效性)springboot mybatis 小程序。签到管理:查看用户创建的签到,可删除。用户管理:查看注册用户信息,及删除。签到记录:查看用户签到记录:可删除。个人信息:展示个人信息,可修改。统计分析:查看用户,签到数量。签到记录:查看用户签到记录。登录注册(含授权登录)我的签到:查看签到记录。

wfuhui的博客 5224

数据结构与算法——只出现一次的数字

题目 解题 public int SingleNumber(int[] nums) { int result =0; for(int i=0;i<nums.Length;i++) result^=nums[i]; return result; }

qq_44425179的博客 214

MATLAB实战:5步搞定铣削稳定性叶瓣图(附完整代码解析)

本文提供了一份基于MATLAB的铣削稳定性叶瓣图实战指南。通过5个清晰步骤,从动力学原理出发,详细解析了利用半离散法构建稳定性判据、模块化代码设计、高效参数扫描及高级可视化的完整流程,并附有完整代码,帮助工程师快速预测和规避加工颤振,优化铣削工艺参数。

weixin_29197051的博客 197

LeetCode--初级算法--数组篇--第五题--只出现一次的数字

题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例: 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 代码: 我一开始的思路是将数组进行排序,排序之后只要确保中间的数和...

innerpeacez成长之路 428

SolidWorks有限元分析流程

对于很多专业,在进行设计完成后,为了缩短开发周期,往往需要配合仿真结果进行,机械行业更是如此。平时大家多采用专业有限元仿真软件进行仿真分析,如ANSYS;不过SolidWorks软件因为制图简单,同时存在专用的有限元仿真模块Simulation,对于初学者往往更加适用,下面简单介绍下SolidWorks Simulation仿真流程。 1. 分析流程 关键步骤如下: **(1)创建算例;**对模型的每次分析都是一个算例,一个模型可以包含多个算例。 **(2)应用材料;**指定模型的材料属性,如铝合金、钢材等

DYH_BK的博客 3万+

蓝桥杯STM32G431RBT6学习——GPIO

蓝桥杯STM32G431RBT6学习——GPIO

weixin_44098974的博客 2236

【面试题】剑指Offer-40-数组中只出现一次的数字

题目概述 解题思路 我们知道,一个数和自己异或的结果是0 如果这个整形数组中只有一个数字出现一次的话,全部异或后的结果就是出现一次的数字 由于这道题目是两个数字a,b出现了一次,我们也可以将所有的数进行异或 得到的结果就是a,b异或的结果ret 此时,我们可以根据ret的二进制中任何一位数字为1将整形数组分成两组 a,b就分别处于这两组之中 然后分别对两组进行所有数字异或

皓皓松的博客 1165

无人机蜂群作战设计技术详解

构建防御网络,拦截敌方无人机或导弹;无人机蜂群作战设计技术是一种创新的军事应用概念,它基于生物仿生学原理,通过先进的通信技术、自主导航与决策算法,将大量小型、低成本、功能各异的无人机组织成一个高度协同的群体,以执行复杂多样的军事任务。无人机蜂群作战的概念源于自然界中蜜蜂、蚂蚁等生物群体的行为模式,这些生物群体通过简单的个体间的信息交互和分工协作,能够完成远远超出单一个体能力的复杂任务。其中,无人机群体是执行任务的主体,指挥控制系统负责任务分配和决策,通信数据链则保障无人机群体与指挥控制系统之间的信息交换。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 2217

LeetCode位运算实战指南:151道题解项目深度解析

位运算在LeetCode算法竞赛中扮演着关键角色,掌握这一技巧能显著提升你的编程能力和解题效率。今天,我们将深入探索gh_mirrors/leet/leetcode项目中的位运算实战技巧,为你提供完整的151道LeetCode题解学习路径。 ## 🚀 项目概览与核心价值 gh_mirrors/leet/leetcode项目是一个精心整理的LeetCode题解仓库,包含151道经典题目的完整解

gitblog_00227的博客 418

从理论到实践:全面解析Cmk(设备能力指数)的应用与优化

本文全面解析了设备能力指数Cmk的核心概念、计算逻辑与关键应用场景。Cmk作为衡量设备本身固有加工能力的黄金标准,在设备验收、大修后验证及过程能力根因分析中至关重要。文章通过实战案例,详细阐述了执行Cmk测试的“五大固定”黄金法则、数据计算分析方法,并提供了Cmk不达标时的系统性排查与优化策略,帮助制造企业实现预防性质量管理。

jump7的博客 529

uniapp - 实现苹果App打包上架App Store应用商店详细教程,详解Hbuilder打包编译ipa发布上传到苹果ios软件商店全流程,提供云打包/离线本地打包ios、申请IOS苹果证书方法

uni-app,苹果ios,苹果app,打包编译,appstore应用商店,ipa发布到软件商店,uniapp的app苹果应用商店上架,上架苹果APPStore,uniApp打包的ipa文件上传到商店,上架苹果商城,审核失败,被拒绝,UniApp打包ipa文件,上架iOSAppStore流程指南,最新详细教程最全,Hbuilder打包发布iosapp,苹果云打包上线全过程,云打包IPA并上传到商店,打包iOSipa文件后怎么发布到应用商店,苹果证书申请教程,ios证书申请,mac电脑,审核很久

🏆 前端领域优质创作者 1万+

程序设计基础:从语法到计算思维的实战指南

程序设计基础不仅是学习编程语言的语法,更是培养计算思维的过程。计算思维包含问题分解、模式识别、抽象和算法设计等核心能力,它教会我们如何将复杂问题转化为计算机可执行的逻辑步骤。理解变量、数据类型、控制流等基础概念,掌握数组、链表等数据结构,以及学会使用函数进行模块化设计,是构建高质量代码的基石。这些基础能力决定了代码的健壮性、可维护性以及学习新技术的效率。本文通过解析变量与数据类型、程序控制流、函数与模块化等核心概念,并结合数组、链表等数据结构的应用场景,帮助开发者夯实基础,避免常见陷阱,从而在Java、Py

385

Yolov8-pose关键点检测:loss优化 | LRM loss困难样本挖掘,提升难样本、遮挡物等检测精度

LRM loss应用到能够大幅提升pose遮挡物性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1716

数组元素成对出现,找出只出现一次的元素

编程实现: 一组数据中只有一个数字出现了一次,其他所有数字都是成对出现的,请找出这个数字。(使用位运算) 方法一: 将该数组整个异或,最终结果就会得到单独出现的那个数 原因: 按位异或:相同为0,不同为1 任何数与其自身进行按位异或,结果都为0 而0与任意数按位异或其结果都为该任意数 #include<stdio.h> #include<windows.h> int ...

Hello World! 4593

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C语言-在数组中找出只出现了一次的元素-寻找单身狗

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

weixin_47954673的博客 605

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

给定一个整数数组,1≤a [i]≤n(n =数组的大小),一些元素出现两次,其他出现一次 查找在该数组中出现两次的所有元素

本题源自leetcode  442 -------------------------------------------------------------- 思路: 因为数组中的数 从 1-N,所以可以吧数放i到i-1的位置上。然后遍历数组,如果num[i] != i+1则就是重复的 代码: vector findDuplicates(vector& nums) {

i_am_bird的博客 6453

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

算法——只出现一次的数字

题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 题解: 交换律:a ^ b ^ c <=> a ^ c ^ b 任何数于0异或为任何数 0 ^ n => n 相同的数异或为0: n ^ n => 0 class Solution { public int singleNumber(int[] num

小码农想做大架构的博客 163

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

class Solution { public: int singleNumber(vector&amp;lt;int&amp;gt;&amp;amp; nums) { int value = 0; for (int i = 0; i&amp;lt;nums.size(); ++i) value = value^nums[i];//利用异或特性,使得出现了两次的数字的二进制位始终为0,最后一个单独的数字与0异或就...

弯弯传奇的博客 2388

LeetCode有代表性的题解---应用二分查找(四)

1.求开方 69. x 的平方根 实现int sqrt(int x)函数。 计算并返回x的平方根,其中x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 解题思想:对于较大的数(2147483647)常规的解法可能会超出int范围,结合二分法进行可缩小计算范围 JAVA代码: /...

G_X_Yang的博客 453

LeetCode 136.Single Number(只出现一次的数字)

题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例1 输入: [2,2,1] 输出: 1 示例2 输入: [4,1,2,1,2] 输出: 4 难度系数: 简单 解题思路一 常规方法是,遍历数组,然后统计每个值出现的次数,最后在选择出现次数为1的那个值.该算法的...

u014630987的博客 351

数据结构:线性表删除操作

摘除数组里的一个元素,然后保持队列不变化,并且长度减一,js只有shift,不符合要求, 只删除数组元素,值设为空了,并且长度不变化。 原理:就是数组元素从后往前移, 覆盖掉需要删除的节点, 然后总数减少 [ PHP版 ] function delete_array_eleme...

1335

链表基础题大全(五):阿里巴巴算法 - 保留有序单链表中的重复元素(只保留一次)

(尊重劳动成果,转载请注明出处:https://yangwenqiang.blog.youkuaiyun.com/article/details/105694552冷血之心的博客) 这段时间完成了职业生涯第一次跳槽,对算法题目有了一个更深的认识和理解,这里将链表常见的面试题目以及解法补充完善。 链表基础题大全(一) 链表基础题大全(二) 链表基础题大全(三):奇偶链表和旋转链表 链表基础题大全(四):单链表...

冷血之心的博客 1089

菜鸟初刷LeetCode——数组(4) singleNumber只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?   思路(一开始做不出来,看到别人的觉得真的牛逼): 利用^相同的数都是0,0和任何数字异或都是本身的性质 比如1^2^2^3^1^2 = 3,就是最终的那个数字   * Description:给定...

hehangjiang的博客 345

线性表——删除元素问题

题目: 已知长度为n的线性表A,采用顺序存储结构,设计一个时间复杂度为O(n),空间复杂度为O(1)的算法,将线性表A中所有值为X的元素删除,X为任意整数。 思想: 采用标准的删除操作,每次寻找到X的时候将后面所有元素前移一位 遍历表中不等于X的元素,将他们插入到一个新的表中 采用双指针,工作时一快一慢,不等于X就插入到前一个只针的位置 记录元素的值为X的元素的个数,记为k,当遇到元素的值等于X...

qq_39690007的博客 2009
上一篇: 线性表--搜索旋转排序数组 II(Search in Rotated Sorted Array II)
下一篇: Golang位运算符
冷手马
博客等级 码龄8年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值