leetcode题解136-只出现一次的数字
问题描述
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4
解题思路
本题需要使用到异或运算符,异或运算符是比较两个数的二进制位,相同为0,不同为1,因此异或运算符具有以下性质
1.交换律:a ^ b ^ c <=> a ^ c ^ b
2.任何数于0异或为任何数 0 ^ n => n
3.相同的数异或为0: n ^ n => 0
本题中除了某一个元素以外,其他元素都是成对出现的,由性质1,异或运算符可以交换,因此,相同的元素可以看成是相邻的,由性质3,相同的树异或为0,所以除了单独出现的元素外,其他所有元素的异或结果为0,由性质2,把所有元素互相异或,得到结果即为单独出现的那个元素的值
代码实现
class Solution {public int singleNumber(int[] nums) {int result=nums[0];//将数组中所有元素进行异或,得到的结果即为单独出现的元素值for(int i=1;i<nums.length;i++){result=result^nums[i];}return result;}
}
leetcode题解136-只出现一次的数字相关推荐
- Leetcode:NO.136 只出现一次的数字
题目 链接:https://leetcode-cn.com/problems/single-number 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次 ...
- leetcode系列-136.只出现一次的数字
题目描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素.示例: 示例 1: 输入: [2,2,1] 输出: 1示例 2: 输入: [4,1,2 ...
- LeetCode:136. 只出现一次的数字
136. 只出现一次的数字 题目: 解题思路: 源码: 踩坑点: 题目: 解题思路: 1.法一: 遍历 nums\text{nums}nums 中的每一个元素 如果某个 nums\text{nums} ...
- Java实现 LeetCode 136 只出现一次的数字
136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现 ...
- 136. 只出现一次的数字(关于异或的使用)
136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现 ...
- 136. 只出现一次的数字【我亦无他唯手熟尔】
136. 只出现一次的数字 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素.说明:你的算法应该具有线性时间复杂度. 你 ...
- 136. 只出现一次的数字
136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现 ...
- Leetcode题库 136.只出现一次的数字(异或 C实现)
文章目录 思路 代码 思路 两相同数字异或时为0, 将数组中数字挨个儿异或, 最后仅会剩下那个只出现一次的数字 代码 int singleNumber(int* nums, int numsSize) ...
- LeetCode 136. 只出现一次的数字(异或^)
文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明:你的算法应该具有线性时间复杂度. 你 ...
- LeetCode[136.只出现一次的数字](简单) -- java
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明:你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [2 ...
最新文章
- 分布式缓存系统 Memcached CAS协议
- 如何用MediaCapture解决二维码扫描问题
- 又一次回到追寻梦想的地方
- SQLServer安装挂起解决方法
- 前端-requests-flask对应关系 restful
- django写一个简单的登陆注册
- 公里与英里的换算c语言函数_这些天然气单位换算你知道吗?
- 豆瓣评论【数据集分享】
- 穿越计算机的迷雾--读书笔记四
- SpringBoot整合腾讯云COS
- 一键识别图片中的表格数据,并转为Excel
- 头条小程序可以使用uniapp的地图选择(uni.chooseLocation)
- 热风销售不合格凉鞋、外套遭处罚,服装商家经营需诚信
- 思科路由器命令大全(一)
- 基于ANSYS WORKBENCH的装配体分析
- 2018-2019ICPC焦作C题Supreme Command kd-tree
- 微信小程序使用三元运算符
- 如何防止亚马逊账号被关联?
- Java 微服务实践
- 计算机平均数据传输速率怎么算,如何计算总线数据传输速率
热门文章
- 程序员遇到bug时常见的30种反应
- Linux操作系统下的多线程编程详细解析----条件变量pthread_cond_t那些事儿
- java 接口 设计模式吗_JAVA接口设计模式-工厂模式
- vs使用未初始化的内存怎么解决_C语言内存操作陷阱总结
- 记一次设备网络问题的排查
- oracle:时间数据的处理
- 【clickhouse】ClickHouse之DBA运维宝典
- 【Elasticsearch】在Elasticsearch中支持纳秒时间戳
- 【kafka】 Error when handling request Name: FetchRequest cannot compare its segment info since it only
- 【Spark】Spark 报错 error writing stream metadata exitcode=1073741515