Leetcode之Missing Number问题
来源:互联网 发布:知茵女装是品牌吗 编辑:程序博客网 时间:2024/05/29 18:28
问题描述:
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the onethat is missing from the array.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
示例:
Given nums = [0, 1, 3]
return 2
.
问题来源:Missing Number (详细地址:https://leetcode.com/problems/missing-number/description/)
思路:1)首先,得先明确题目的要求,题目要求的是必须在线性时间内找到答案并且无需额外的空间复杂度;
2)找到丢失的那个数字,言外之意就是其他的数字都在;
3)思路其实还是比较明确的,但是可以有很多种解法:
a)第一种解法: 0~n的数求和就是s = n*(n + 1)/2,然后把目前为止数组中元素的和sum求出来,然后缺少的那个数不就是原来不缺数时的和(即s)减去当前的所有元素之和(即sum),不就ok了吗?
b)第二种解法:咱们不是需要遍历所有的元素的吗?那就不需要额外再进行求和了,直接利用index - nums[index]求和,最后加上最后的索引nums.length,不就是n + 1个数的和了吗?然后减去元素之和就是结果啦。其实和上面的解答是一个意思。
c)第三种解法:在这,我们采用的是异或的方式,因为a ^ b ^ b = a,咱们就利用这个性质,一个数异或上两个相同的数得到的是还是原来的数,利用xor记录最后的异或结果,即xor = xor ^ i ^ nums[i],最后xor的结果就是没法异或掉的数以及它对应的索引,最后问题所需的结果就是xor ^ i,这个就是题目要求的那个数了。
代码:
- Leetcode之Missing Number问题
- Leetcode之Missing Number 问题
- LeetCode之Missing Number
- leetcode之Missing Number
- leetcode之Missing Number
- LeetCode 之 Missing Number
- 【Leetcode】:268. Missing Number 问题 in JAVA
- LeetCode之路:268. Missing Number
- 【LeetCode】268 Missing Number
- [leetcode] 268.Missing Number
- [leetcode][math] Missing Number
- [LeetCode] Missing Number
- Leetcode -- Missing Number
- 【leetCode】Missing Number
- [Leetcode]Missing Number
- leetcode Missing Number
- 【leetcode】268. Missing Number
- [leetcode] Missing Number
- cuda编程---cuda的速度计量
- 文章标题
- 【10】CSS3阴影 box-shadow的使用和技巧总结
- 网络编程学习笔记一:Socket编程
- 程序员的消极开发
- Leetcode之Missing Number问题
- Android Studio怎么删除项目
- 工作十年的程序员,却拿着毕业三年的工资,再不开窍就真晚了!
- 欢迎使用CSDN-markdown编辑器
- 树梅派 3--使用笔记
- TestNG
- sublime text3 设置自动搜索匹配
- tomcat 启动项目时提示端口号被使用
- 字符个数统计