LeetCode268. Missing Number解题
来源:互联网 发布:java ant pdf 编辑:程序博客网 时间:2024/06/06 04:21
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.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
题目的大意是:给你一个数组,里面的元素是从0,1,2,……n这n+1个数字中取出n个来构成的,也就意味着有一个数字是缺失的,你要找到这个数字
题目有个特别要求:你要在O(n)时间复杂度内解决这个问题,并且只能用O(1)的空间复杂度。有的同学就会问这个O(1)的空间复杂度,也就是常量额外空间复杂度是什么,这个就是说你的额外空间必须是常量个,不能跟问题的规模n相关,你可以设置1个int变量也可以设置100个int变量,但是不能用一个长度为跟输入数组长度一样的int数组
分析
既然数组里的元素是从0到n无重复的取,那就用等差数列来算,先算出给定数组所有的数的和,再跟0到n的等差数列的和相比,差的值就是缺失的数字。
class Solution {public: int missingNumber(vector<int>& nums) { int i; int sum=0; int stdSum; int size; size=nums.size(); //count sum for(i=0;i<size;i++){ sum+=nums[i]; } //count the standard sum if(size%2){//odd stdSum=(size/2+1)+((size-1)*(size+1))/2; }else{//even stdSum=(size/2)*(size+1); } return stdSum-sum; }};
更好的算法
这个我一时还看不懂,有懂的同学欢迎留言分享
public int missingNumber(int[] nums) { int rt = nums.length; for (int i = 0; i < nums.length; i++) { rt = rt ^ nums[i] ^ i; } return rt; }
*来自leetCode 268 Missing Number @_我们的存在
- LeetCode268. Missing Number解题
- leetcode268:Missing Number
- [leetcode268]Missing Number
- leetcode268 Missing Number
- leetcode268. Missing Number
- LeetCode268. Missing Number
- [LeetCode268]Missing Number
- LeetCode268之Missing Number
- leetcode268~Missing Number
- leetcode268. Missing Number
- leetcode268. Missing Number
- LeetCode268--Bit Manipulation--Missing Number找缺失的数
- Missing Number解题报告
- LeetCode268——Missing Number相濡以沫不如相忘于江湖
- LeetCode-Missing Number-解题报告
- 【LeetCode】Missing Number 解题报告
- [leetcode] 268. Missing Number 解题报告
- LeetCode 268. Missing Number 解题报告
- RabbitMQ官方中文入门教程(PHP版) 第四部分:路由(Routing)
- java程序员从笨鸟到菜鸟之(二十九)集合之Map
- C# 生成二维码
- Angulr后台管理平台通过Angular加载页面过程
- SSM整合开发的小Demo----毕业设计管理系统之学生模块
- LeetCode268. Missing Number解题
- SSM整合开发的小Demo----毕业设计管理系统之教师模块
- [BZOJ2875][NOI2012]随机数生成器(矩阵乘法)
- 华北地区、华南地区、华东地区
- 计算与推断思维 五、表格
- php rabbitmq操作类及生产者和消费者实例代码
- cocos绑定c++到lua中
- 第九章自定义标签第五节简单标签
- Python string.format() 的用法