博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 136. 只出现一次的数字
阅读量:4033 次
发布时间:2019-05-24

本文共 675 字,大约阅读时间需要 2 分钟。

题目描述

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

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]

输出: 1
示例 2:

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

输出: 4

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/single-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

C++

class Solution {
public: int singleNumber(vector
& nums) {
int temp=0; for(int i=0;i

这道题的标签是哈希表 如果允许额外的空间,就直接用哈希表了。

虽说是简单题,我还是好久没想起来办法,异或。 这的确是我不熟练的。
不需要额外空间的方法,就往位运算上想。

以下技巧来自于leetcode 的discussion部分,学到了!

异或

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

交换律:a ^ b ^ c <=> a ^ c ^ b任何数于0异或为任何数 0 ^ n => n相同的数异或为0: n ^ n => 0var a = [2,3,2,4,4]2 ^ 3 ^ 2 ^ 4 ^ 4等价于 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3
你可能感兴趣的文章
logback高级特性使用(二) 自定义Pattern模板
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
可扩展、高可用服务网络设计方案
查看>>
如何构建高扩展性网站
查看>>
微服务架构的设计模式
查看>>
持续可用与CAP理论 – 一个系统开发者的观点
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
c++字符数组和字符指针区别以及str***函数
查看>>
c++类的操作符重载注意事项
查看>>
c++模板与泛型编程
查看>>
STL::deque以及由其实现的queue和stack
查看>>
WAV文件解析
查看>>
DAC输出音乐2-解决pu pu 声
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
WPF UI&控件免费开源库
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+VS+ESP32环境搭建
查看>>
Ubuntu+win10远程桌面
查看>>
flutter-实现圆角带边框的view(android无效)
查看>>
android 代码实现圆角
查看>>