Missing Number
来源:互联网 发布:制作视频的软件 编辑:程序博客网 时间:2024/06/05 17:28
题目描述
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3]
return 2
.
思路
注意这里并没有说给你的数组一定是有序的,只告诉你每一个数是不同的,而且只miss one;很容易想到的是sort一下,然后进行后一个元素减去前一个元素是否为1判断,这里注意对特殊情况,比如数组只有一个元素的时候,和[1,2,3]这种miss 0的情况。
另一种机智的思路是,数组的下标是0,1,2,3...nums.length-1,是固定的,数值也应是0,1,2,3,...nums.length-1,但是由于miss one 导致少了一个数他们变成了0,1,2...n,n-2...nums.length,可以发现除了少的那一个和因此多出来的nums.length其他都是成对出现的,所以只要把这些成对出现的数字消去,剩下的就是少的那个数和nums.length,再把nums.length去掉即可。
根据这种思路可以采取异或的方式,把所有的下标和数值异或,再和nums.length异或得到的就是那个miss one
int res = 0;int i = 0;for (; i < nums.length; i++) { res = res ^ i ^ nums[i]; }return res ^ i;
阅读全文
0 0
- Missing number
- Missing number
- Missing number
- Missing number
- Missing Number
- Missing Number
- Missing Number
- Missing Number.
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Missing Number
- Spring Boot访问项目时,需要提供用户名和密码。
- IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表
- MATLAB相关分析
- 在maven web项目中配置log4j打印日志及Mybatis sql语句
- 实现非递归二分法查询
- Missing Number
- ArrayList类注释翻译、源码分析
- 隔个取马
- datatables排序时传入xml参数问题
- Android系统和Linux系统的对比
- 优化算法——遗传算法(好复杂)
- busybox简介
- Maven项目转为jar包运行
- JavaWeb学习篇之----Servlet过滤器Filter和监听器