LeetCode[136. Single Number] 难度[easy]
来源:互联网 发布:u盘数据恢复大师多少钱 编辑:程序博客网 时间:2024/06/06 19:14
**
题目:
**
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?
Subscribe to see which companies asked this question
大意:有一组数字,除了一个元素只出现一次,其他每个元素都会出现两次,找出这个元素。时间复杂度要求是O(n),空间复杂度要求O(1)
算法分析:
这个题若没有空间复杂度的要求很容易就能想到怎么做,比如直接循环一遍统计每个数字出现多少次用map存起来,然后找出只出现一次的就可以搞定了,事实上这样做在leetcode上也可以AC,但是并不符合题意,因为这样做时间复杂度和空间复杂度都是O(n)。
其实这个题考察是的异或运算符“^”的使用,由于只有一个数字出现一次,其他都出现两次,只要把所有数字都进行异或操作,显然出现两次的数字会自动抵消,剩下最后的结果就是只出现了一次的数字。这样时间复杂度为O(n),空间复杂度为O(1)
代码实现如下:
class Solution {public: int singleNumber(vector<int>& nums) { int n = nums.size(); int result = nums[0]; for(int i=1; i<n; ++i) result ^= nums[i]; return result; }};
0 0
- LeetCode[136. Single Number] 难度[easy]
- 136. Single Number 难度:easy
- 【LeetCode】136.Single Number (Easy)
- LeetCode 136. Single Number (Easy)
- 【LeetCode】(136)Single Number (Easy)
- 【Leetcode-easy-136】Single Number
- 136. Single Number (Easy)
- 136. Single Number [easy] [python]
- LeetCode-Easy刷题(31) 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 136. Single Number
- leetcode 136. Single Number
- 136. Single Number LeetCode
- base64编码解码
- netsat
- -分页数据查询:
- spark-shell 读写hdfs 读写hbase 读写redis
- My97DatePicker
- LeetCode[136. Single Number] 难度[easy]
- ajax原理和XmlHttpRequest对象
- 依赖注入那些事儿
- Thinkphp 单字母内部函数 ADSLCFI
- Time-Selector日期选择控件【可以设置当前时间】
- SharedPreferences详解
- 我做的4周岁儿童编程课程【视频】分享
- 2-18 共享内存通信
- LWIP的底层结构(物理层)