136.只出现一次的数字 重点思想总结

力扣136. 只出现一次的数字 数组中出现两次的数字 只出现一次的数字 题目来自 代码及思路 按位或 | ,有一为一,其他为零。(二进制位中对应运算的两个二进制位,只要有一个为1,其结果就是1) 0011 10进制3 0010 10进制2 0011 10进制3(结果) 按位与 & ,均一为一,其他为零。(对应的二进制位均为1,结果才是1) 0011 10进制3 0010 10进制2 0010 10进制2(结果) 按位异或 ^,不同为一,其他为零。(比如 (1^0) (0^1) 阅读详情

136.只出现一次的数字

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

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

260. 只出现一次的数字 III

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。

输入:nums = [1,2,1,3,2,5]
输出:[3,5]
解释:[5, 3] 也是有效的答案。

思想总结:

1 任何数和自己异或都是0。任何数和0异或还是自己。如1^1=0,1^0=1

2 异或操作满足交换律和结合律

3 136题解题思想:直接异或所有元素就能得到那个只出现一次的数字。而260题异或所有元素得到的是2个不同的元素异或的结果。

4 260解题思想:

        假设出现1次的2个元素记为a和b;a和b异或的结果记为x;x和和自己的相反数-x按位与的结果记为y。任何不相同的元素分离的办法为:

        ① a ^ b = x

        ② x & (-x) = y

        ③ y & a == 0 或 y & b == 0 

        ④ 从③中等于0和不等于0将数组分为2组,一组含a和其他,另一组含b和其他。只需要将两组分别异或(和136题思想一致)就能得到a和b。

【R语言实例】物种分布模型介绍 SDM介绍 阅读详情

相关推荐

Java写项目前的准备工作指南(技术栈选择 环境搭建和工具配置 项目结构设计与模块划分)

在开始编写一个 Java 项目之前,做好充分的准备工作是至关重要的。很多初学者可能在没有清晰规划的情况下就开始编写代码,导致项目开发进度缓慢、结构混乱,甚至最终无法按预期完成。而事实上,项目的成功不仅仅取决于编码能力,还包括项目初期的规划和准备。准备工作是确保项目顺利进行的基础,它包括技术选型、环境搭建、需求分析、团队协作及项目管理等多个方面。通过这些准备,我们可以确保项目的开发不仅高效而且有可维护性,最终能交付出高质量的代码。在项目开发过程中,异常处理是非常关键的一部分。

eternal__day的博客 1188

神奇的位运算——力扣136.只出现一次的数字

摘要 题目要求在非空整数数组中找到只出现一次的数字(其他数字均出现两次)。常规HashSet解法(添加/移除元素)虽然直观,但空间复杂度为O(n)。最优解采用位运算异或(XOR),利用其性质:相同数异或为0,不同数异或保留原值。通过遍历数组将所有数字异或,最终结果即为只出现一次的数字,实现O(n)时间复杂度和O(1)空间复杂度。该方法简洁高效,是位运算的经典应用,还可扩展解决数字出现三次或两个唯一数字等变种问题。

w1311823723的博客 1174

API安全攻防实战:从信息搜集到漏洞利用的完整路径

本文详细解析了API安全攻防实战的全过程,从信息搜集到漏洞利用,涵盖了渗透测试的核心技巧和工具使用。通过真实案例展示如何发现和利用API漏洞,如HTTP方法滥用、内容类型转换攻击等,并提供企业级防御策略和测试心得,帮助安全研究人员提升API安全防护能力。

weixin_30394981的博客 434

hot100——位运算专题

我们可以使用 Brian Kernighan 算法进行优化,具体地,该算法可以被描述为这样一个结论:记 f(x) 表示 x 和 x−1 进行与运算所得的结果(即 f(x)=x & (x−1)),那么 f(x) 恰为 x 删去其二进制表示中最右侧的 1 的结果。而偶数中1的个数是和偶数/2之后的数字的1的个数是相同的,偶数的最低位是0,除以2相当于右移1位,相当于抹去最后的一位0,但是1的个数是保持不变的。,得到这两个数字当中二机制位不同的结果,随后遍历整个结果,把位为1的结果的数目给统计出来。

weixin_50422106的博客 336

HyperMesh实战:用Field工具搞定复杂载荷映射(附TCL脚本示例)

本文深入探讨了HyperMesh中Field工具在复杂载荷映射中的高级应用,包括从CSV到有限元网格的温度场映射全流程、稀疏数据处理技巧及TCL自动化脚本示例。通过Field工具,工程师可以高效实现CFD温度场到结构网格的精准映射,显著提升有限元分析的精度与效率。

white的博客 265

COMSOL模拟CO2驱替CH4:多物理场耦合建模与工程应用详解

在非常规天然气开发与碳封存工程中,多孔介质内的渗流、吸附与岩石变形相互耦合,使得CO2驱替CH4的产能预测和CO2封存评估无法仅靠经验公式完成。以达西定律描述裂隙流动、以扩展Langmuir方程刻画竞争吸附、用应力-吸附-渗透率关系关联煤岩变形,是多物理场耦合数值模拟的核心路径。COMSOL Multiphysics凭借内置渗流、固体力学与组分传递接口,能够将这些机制整合为可参数化扫描的仿真模型,为注气压力、井距、渗透率演化等方案设计提供量化依据。围绕CO2驱替CH4模拟的建模流程、参数取法与结果判读,可形

weixin_29574585的博客 160

LeetCode 136: 只出现一次的数字

目录LeetCode 136: 只出现一次的数字题目描述解题异或 LeetCode 136: 只出现一次的数字 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 【示例 1]】 输入: [2,2,1] 输出: 1 【示例 2】 输入: [4,1,2,1,2] 输出: 4 解题     思路I:排序,对整个数组排序,寻找与左右两边都不相同的那个数字。     思路I

s_Shune 217

【OpenAI】Python:(1) 基于 Gym-CarRacing 的自动驾驶项目 | 前置知识介绍 | 项目环境准备 | 手把手带你一步步实现

本篇是关于多伦多大学自动驾驶专业项目 Gym-CarRacing 的博客。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D 物理引擎的一个版本,经过修改以支持模拟汽车在赛道上行驶的物理过程。由于内容比较多所以分多次更新,本篇是关于前置知识介绍,以及项目环境准备的。

有道无术, 术尚可求。有术无道, 止于术。 5053

LeetCode 136. 只出现一次的数字

LeetCode 136. 只出现一次的数字 一、题目详情 题目详情:https://leetcode-cn.com/problems/single-number/ 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 说明: ​ 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 二、HashSet集合 ​ 可以使用java的Has

jrrhjww的博客 254

Codex 实战 Skills:自动采集一天之内的 Git 提交,一键排版成精美工作日报并发送邮件

特性手动撰写脚本辅助(仅聚合)AI 增强自动化(本文方案)时间成本高(30-60分钟/天)中(5-10分钟/天)低(<1分钟/天)内容质量依赖个人总结能力原始数据堆砌,缺乏提炼专业、结构化、有业务视角信息完整性易遗漏完整,但难以阅读完整,且经过分类筛选维护成本无低中(需维护 Skill 配置)可扩展性低中高(可轻松添加周报、月报)适用场景所有开发者初级开发者追求效率的高级开发者本文详细介绍了一种基于 Codex Agent Skills 的自动日报生成方案。

yueyeguzhuo的专栏 102

基于 FPGA 的 CNN 卷积神经网络之池化层 Verilog 实现

池化层是卷积神经网络(CNN)中的关键组件,用于降低特征图的维度,减少计算量和防止过拟合。常见的池化操作包括最大池化和平均池化。FPGA 提供了高效的并行处理能力,可以加速这些操作。池化层在 CNN 中扮演重要角色,通过降低数据维度提升计算效率。在 FPGA 上实现池化层,可以充分利用硬件资源实现高效的并行计算,有助于提高实时应用中的推理速度。

走向CTO的路上... 1256

【LeetCode】136.只出现一次的数字(Java实现)

LeetCode136.只出现一次的数字 题目描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 分析: 先找出题目中的重点要求: 1、线性时间复杂度:要求...

allyyhh的博客 934

51单片机+DS18B20+数码管显示+超温提示+Proteus仿真

51单片机+DS18B20+数码管显示+超温提示+Proteus仿真 Proteus仿真 实例代码 #include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit we1 = P3^0; sbit we2 = P3^1; sbit we3 = P3^2; sbit we4 = P3^3; sbit DS = P1^0; sbit D1 = P3^6; sbit D2 = P3^7; uch

perseverance51博客 1539

【LeetCode Hot 100】 136. 只出现一次的数字

摘要: 题目要求在非空整数数组中找出唯一出现一次的数字(其他数字均出现两次),要求O(n)时间复杂度和O(1)空间复杂度。最优解法是位运算(异或),利用异或的交换律、归零性和恒等性,遍历数组将所有元素异或,最终结果即为目标数字(如4^1^2^1^2=4)。Java实现仅需1个变量存储异或结果,时间复杂度O(n),空间复杂度O(1)。其他解法如哈希表(O(n)空间)或固定长度数组(依赖值域约束)均非最优。异或运算完美满足题目双重要求,是最简洁高效的解决方案。

专注Java和MySQL领域知识分享 638

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【每日算法】LeetCode 136. 只出现一次的数字

算法摘要:LeetCode 136. 只出现一次的数字 本文分析了找出数组中唯一出现一次数字的问题,提供了三种解法: 哈希表法:直观易懂,但需要O(n)空间 集合数学法:利用和差计算,同样需要额外空间 异或位运算法:最优解,O(n)时间且O(1)空间,利用异或性质抵消成对数字 关键点: 异或运算具有自反性(a^a=0)和交换律 前端开发中,此类算法可用于状态管理、数据去重等场景 类似题目包括处理三次出现、两个唯一数等变体问题 最优解法仅需一次遍历和常数空间,体现了算法对编码能力的提升价值。

LYFlied的博客 932

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode136:只出现一次的数字

LeetCode136:只出现一次的数字 标签:位运算、哈希表 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/single-number 解法一:暴力法 直接每个挨...

Burger 142

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【算法入门】LeetCode 136. 只出现一次的数字:Java与JavaScript位运算双解法详解|异或运算的魔法力扣136题详解:只出现一次的数字(Java & JavaScript 双语言实

通过本文,我们学习了如何使用Java和JavaScript通过位运算高效地解决“只出现一次的数字”问题。位运算不仅解决了问题,而且满足了线性时间复杂度和常量空间复杂度的要求。希望这篇文章能帮助你更好地理解并掌握这一知识点。好的,我很乐意为你提供详细的解答和博客内容。以下是一篇新手入门博客,包含Java和JavaScript的解答以及相关知识点的详细介绍。博客标题: 从零开始学习力扣题 136. 只出现一次的数字目录:问题描述Java解答2.1 使用异或运算JavaScript解答。

南北极之间 1130

LeetCode-136-只出现一次的数字

LeetCode-136-只出现一次的数字 题意描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例: 示例一 : 输入: [2,2,1] 输出: 1 示例二: 输入: [4,1,2,1,2] 输出: 4 解题思路: Alice: 这题我会,把数组排个序...

花花生的博客 220

Leetcode136——只出现一次的数字

这道题目没有使用高深的算法,就是一个简单的位运算,但是它充分利用了计算机本身的特性。类似于这样的还有,当我们要给一个数除以2时,我们可以使用**>>**右移运算符替代,等等。

qq_41596730的博客 356

【Java】【JS】LeetCode - 位运算 - #136 只出现一次的数字

所有的选择不过是为了下一次选择做准备。 力扣力扣:https://leetcode-cn.com/problems/single-number/ #136 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 输入: [2,2,1] 输出: 1 输入: [4,1,2,1,2] 输出: 4 方法一:哈希表 方法二:位运算 ...

Sabrina_cc的博客 290

力扣136. 只出现一次的数字(异或位运算、排序、哈希、暴力法)

力扣136. 只出现一次的数字(异或位运算、排序、哈希、暴力法) https://leetcode-cn.com/problems/single-number/ 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 ...

小麦China的博客 378

136. 只出现一次的数字

不重复的存储数组的元素,也就是每个元素只存储一次,重复的不存储,计算它们的和,就相当于所有数字的两倍之和。然后将原数组中的元素全部相加,就相当于只出现了一次的元素加上全部出现了两次的元素。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,如果集合中已经有该数字,则将该数字从集合中删除,最后剩下的数字就是只出现一次的数字。遍历数组即可得到每个数字出现的次数,并更新哈希表,最后遍历哈希表,得到只出现一次的数字。因此,数组中的全部元素的异或运算结果即为数组中只出现一次的数字。

世事易变,匪石弗转。 1155

Leetcode 136: 只出现一次的数字

Leetcode 136: 只出现一次的数字题目描述我的代码解法1:先进行sort排序解法2:利用map(但是我的思路不对,代码见下)解法2:正确地使用map(运行时间和占用内存是硬伤)解法3:用set解法4: 黑科技——异或 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外...

IcdKnight的博客 223

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

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

Father_Of_Soft的博客 326

leetcode 136.只出现一次的数字

需要注意的就是如果key不存在的时候是很容易报错的,所以比较推荐的是使用defaultdict进行初始化,然后根据key的类型进行对应的初始化即可.比如defaultdict(int),defaultdict(str)很明显,是直接不允许你使用暴力搜索的方式解题,所以我们需要考虑其他的数据结构.这里明显是在统计出现的次数,也就是一个哈希表的问题,key为num,value为出现的次数.dict 用于存储键值对(key-value),核心操作围绕键的增删查改。输入:nums = [4,1,2,1,2]

hooksten的博客 381

【技巧】LC 136.只出现一次的数字

摘要: 本文解析了LeetCode热题100中的「只出现一次的数字」问题。题目要求在非空整数数组中找到仅出现一次的数字(其余数字均出现两次)。核心思路是利用异或运算的特性:相同数字异或结果为0,任何数与0异或保持原值。通过遍历数组并累计异或所有元素,最终结果即为目标数字。该算法时间复杂度O(n),空间复杂度O(1)。代码示例展示了简洁的位运算实现,并总结了异或其他常见位运算技巧(如消去最低位1、状态压缩等)的适用场景。

你的博客 570
上一篇: java - 173. 二叉搜索树迭代器
下一篇: java - 231. 2 的幂
旋转木码
博客等级 码龄8年 10粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值