[leetcode 136] Single Number
来源:互联网 发布:白百合离婚 知乎 编辑:程序博客网 时间:2024/06/06 03:34
Question:
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?
给定一个整数数组,其中数组内的所有数据元素(除了一个以外)都出现2次,找到这个出现一次的数据;
要求时间复杂度为O(n),空间复杂度为O(1)
可以知道,如果数组为空,返回0;
若不为空,可以采用位异或运算;
异或运算介绍:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1)
如果A = 2,B=3 则A^B = 010 ^ 011 = 001;
所以如果从第一个元素开始到最后一个元素采用异或运算,遇到相同的数据元素会中和为0,最后只会剩下出现1次的数据无法被中和为0;
所以代码如下:
class Solution {public: int singleNumber(vector<int>& nums) { int res = 0; for (int n : nums) res ^= n; return res; }};
0 0
- LeetCode(136)Single Number
- LeetCode 136 Single Number
- LeetCode 136 Single Number
- LeetCode: Single Number [136]
- [leetcode 136] Single Number
- [leetcode]136 Single Number
- leetcode-136 Single Number
- LeetCode 136 Single Number
- LeetCode 136 Single Number
- leetcode || 136、Single Number
- LeetCode 136 : Single Number
- leetcode Single Number 136
- LeetCode---(136) Single Number
- leetcode#136 Single Number
- Leetcode[136]-Single Number
- leetcode-136-Single Number
- Leetcode 136 Single Number
- leetcode[136]:Single Number
- Linux多线程实践(二)线程基本API(POSIX)
- 非均匀采样理论
- [iOS]图片添加文字或者水印
- Day-5 周六,看JS
- login.sql 和临时表的一些概念
- [leetcode 136] Single Number
- 浅析结构体函数指针与内核设备驱动
- leetcode笔记:Subsets
- 软件设计模式
- python+正则表达式获取ed2k url
- Android中Activity之间数据传递及返回
- ioctl() 函数用法
- Linux中查看文本文件内容命令cat/tac/nl/more/less/head/tail/vi总结
- Android-Selector实现EditText点击转变风格