268. Missing Number 找出缺失的数
来源:互联网 发布:淘宝联盟自己买自己的 编辑:程序博客网 时间:2024/04/28 02:18
题目:从0, 1, 2, ..., n 选出不同的n个数,找出未选中的哪一个。
Given nums = [0, 1, 3]
return 2
.
分析:
0,... n 中有 n + 1个数, 所以有一个数没有选中。
我们知道 a xor a = 0, 然后,在这里,我们将数组中的值,与下标进行异或。
以[0, 1, 3] 为例,
下标为0, 1, 2, 3 (额外增加的)
值为 0, 1 , 3
那么就可以两两消掉了,剩下的单个的即missing number。
显示了位运算的巧妙性。
复杂度:
时间复杂度:0 (n)
空间复杂度:0 (1)
代码:
public int missingNumber(int[] nums) { int xor = 0; for (int i = 0; i < nums.length; i++) { xor ^= i; xor ^= nums[i]; } xor ^= nums.length; return xor; }
1 0
- 268. Missing Number 找出缺失的数
- Missing Number 第一个缺失的数
- 找出缺失的数
- LintCode --find-the-missing-number(寻找缺失的数)
- LeetCode268--Bit Manipulation--Missing Number找缺失的数
- [LeetCode]268. Missing Number(求数组中缺失的元素)
- LeetCode 268. Missing Number(缺失数字)
- 196.Find the Missing Number-寻找缺失的数(中等题)
- 找出数组中缺失的数
- [LeetCode-268] Missing Number(找缺失的数字)
- leetcode 268. Missing Number-寻找丢失的数|位运算
- 268. Missing Number(查找遗漏的数)
- CSDN 讨论的找出缺失数的方法记录
- 从1-10000中找出2个缺失的数
- 从1-10000中找出2个缺失的数
- 找出1-100中缺失的两个数
- [练习题] 找出1-100中缺失的两个数
- 找出1到n缺失的那个数
- 听韦东山老师公开课的理解
- web.xml详解
- Flume的体系结构介绍以及Flume入门案例(往HDFS上传数据)
- O(NlogN)复杂度选取出现次数超过一半的元素(递归版本)
- 华为OJ——删除字符串中出现次数最少的字符
- 268. Missing Number 找出缺失的数
- Vitamio视频播放器(一)
- css切图
- Android项目中引用本地aar文件的方法
- iOS 第三方框架 - ReactiveCocoa学习1
- 第十五周项目 补充阅读程序(4)
- memcached 常见面试题
- Java中泛型的使用
- 练习2-8 编写一个函数rightrot(x,n),该函数返回将x循环右移n(二进制)位后所得到的值