【leetcode】Missing Number
2016-09-05 23:03
316 查看
Difficulty:medium
Given an array containing n distinct numbers taken from
find the one that is missing from the array.
For example,
Given nums =
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
第一次尝试:
从开始一直遍历,搜索中间缺失的数字,但是发现没有看清楚题目给出的向量nums是未经排序的向量,这样导致如果是乱序无法找到
最终尝试:
class Solution {
public:
int missingNumber(vector<int>& nums) {
int next=0;
int size=nums.size();
for(int i=0;i<size;i++)
{
next+=i-nums[i];
}
next=next+size;
return next;
}
};之后考虑乱序的情况,在乱序的情况下,从1到n进行循环,因为所有的向量nums都是从0开始到n结束,并且缺失的数字只有一个,那么采用加和的方法,从0~n减去0~n-1对应的nums向量的值的总和即可得到最终的差值
next+=i-nums[i];这行代码是为了简化循环的时间效率,采用一次循环,边加和边做差值就可以得到0~n-1的总和减去0~n-1对应的nums向量的值,最后再加上n就可以得到最终的结果
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?
第一次尝试:
从开始一直遍历,搜索中间缺失的数字,但是发现没有看清楚题目给出的向量nums是未经排序的向量,这样导致如果是乱序无法找到
最终尝试:
class Solution {
public:
int missingNumber(vector<int>& nums) {
int next=0;
int size=nums.size();
for(int i=0;i<size;i++)
{
next+=i-nums[i];
}
next=next+size;
return next;
}
};之后考虑乱序的情况,在乱序的情况下,从1到n进行循环,因为所有的向量nums都是从0开始到n结束,并且缺失的数字只有一个,那么采用加和的方法,从0~n减去0~n-1对应的nums向量的值的总和即可得到最终的差值
next+=i-nums[i];这行代码是为了简化循环的时间效率,采用一次循环,边加和边做差值就可以得到0~n-1的总和减去0~n-1对应的nums向量的值,最后再加上n就可以得到最终的结果
相关文章推荐
- The Solution to Leetcode 268 Missing Number
- [LeetCode]Missing Number
- [LeetCode]Missing Number
- [Leetcode] #268 Missing Number
- leetcode268 Missing Number
- 【LEETCODE】268-Missing Number
- [leetcode] Missing Number
- leetcode 268: Missing Number
- [LeetCode] Missing Number
- LeetCode编程练习 - Missing Number学习心得 4000
- leetcode——268——Missing Number
- 【Leetcode】Missing Number
- leetcode---Missing Number---位
- Leetcode_Missing Number
- 【LeetCode】268 Missing Number (java实现)
- leetcode 268 : Missing Number
- leetcode——Missing Number
- LeetCode 268 Missing Number
- LeetCode-Missing Number
- Leetcode: Missing Number