[LeetCode] Single Number 单独的数字
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
本来是一道非常简单的题,但是由于加上了时间复杂度必须是O(n),并且空间复杂度为O(1),使得不能用排序方法,也不能使用map数据结构。那么只能另辟蹊径,需要用位操作Bit Operation来解此题,这个解法如果让我想,肯定想不出来,因为谁会想到用逻辑异或来解题呢。逻辑异或的真值表为:
异或运算的真值表如下:
A | B | ⊕ |
---|---|---|
F | F | F |
F | T | T |
T | F | T |
T | T | F |
由于数字在计算机是以二进制存储的,每位上都是0或1,如果我们把两个相同的数字异或,0与0异或是0,1与1异或也是0,那么我们会得到0。根据这个特点,我们把数组中所有的数字都异或起来,则每对相同的数字都会得0,然后最后剩下来的数字就是那个只有1次的数字。这个方法确实很赞,但是感觉一般人不会忘异或上想,绝对是为CS专业的同学设计的好题呀,赞一个~~
C++ 解法:
class Solution { public:int singleNumber(vector<int>& nums) {int res = 0;for (auto num : nums) res ^= num;return res;} };
Java 解法:
public class Solution {public int singleNumber(int[] nums) {int res = 0;for (int num : nums) res ^= num;return res;} }
LeetCode All in One 题目讲解汇总(持续更新中...)
[LeetCode] Single Number 单独的数字相关推荐
- [LintCode] Single Number 单独的数字
Given 2*n + 1 numbers, every numbers occurs twice except one, find it. Have you met this question in ...
- LeetCode Single Number I / II / III
[1]LeetCode 136 Single Number 题意:奇数个数,其中除了一个数只出现一次外,其他数都是成对出现,比如1,2,2,3,3...,求出该单个数. 解法:容易想到异或的性质,两个 ...
- [LeetCode]Single Number II
今天室友推荐了一道LeetCode上面的练习题Single Number II,题目大概的意思是有一个整形的数组,里面只有一个数是出现一次的,其他的数都出现了三次,然后让把这个数找出来. 第一眼看到这 ...
- leetcode - Single Number
今天开始刷leetcode上的题,争取校招前刷过一遍,从AC率最高的题目开始刷,不废话了,看题 题目:Single Number Given an array of integers, every e ...
- [Leetcode] single number ii 找单个数
Given an array of integers, every element appears three times except for one. Find that single one. ...
- leetcode Single Number python
Single Number Given an array of integers, every element appears twice except for one. Find that sing ...
- LeetCode Single Number III(位操作)
问题:给出一个数组,有两个数只出现一次,其它都出现两次. 思路:先对数组求异或,得到两个数异域的结果.然后确定差异的最低位.再将数组与这个差异位作异域,得到其中的一个数.再与异域结果异域后即得到另外一 ...
- LeetCode Single Number II(位操作)
问题:给出一个数组,其中只有一个数出现一次,其它数出现三次,找出出现一次的数 思路: 1.统计每位出现的次数,如果mod 3等于1,则将该位置为1,最后即得到出现一次的数. 2.使用三个变量来分别来表 ...
- [Leetcode] single number 找单个数
Given an array of integers, every element appears twice except for one. Find that single one. Note: ...
最新文章
- 一句话告诉你们什么是大数据
- python飞机大战源代码-python版飞机大战代码分享
- 005_JSONArray对象静态方法
- 【计算机网络(微课版)】第1章 概述 课后习题及答案
- 实现定时中断_EPIT 定时器,仅需做到如下几步,即可轻松配置使用
- redisson的锁的类型_你知道吗?大家都在使用Redisson实现分布式锁了!!
- 浅析Numpy.genfromtxt及File I/O讲解
- JAVA入门级教学之(局部内部类)
- 反汇编基础-加法的求值过程(各种类型)
- Tomcat和myeclipse的相关操作以及myeclipse的激活方法
- 【hadoop】hadoop 安装 kerberos
- LINE:不得不看的大规模信息网络嵌入
- BindFlags的作用
- C# HttpClient Multipart 上传文件
- 沿海当地平均海面与85面高程关系
- Awesome Crowd Counting
- JS undefined报错
- win7如何解除锁定计算机,Win7电脑键盘数字键被锁了怎么解锁(图文)
- 【PPT】画三维立体块
- python 证书-在python使用SSL(HTTPS)
热门文章
- “正则表达式”应当称为“规则表达式”
- 实现简单的网页间的跳转
- scrapy-splash抓取动态数据例子六
- springboot+mongodb
- Servlet实现的三种方法
- 初学 Delphi 嵌入汇编[1] - 汇编语言与机器语言
- C#自定义控件一下拉颜色框
- java集合对象声明_Java基础————集合类
- Python高阶函数(map,reduce,filter)
- 【十大经典排序算法】java实现--冒泡排序(1)