Leetcode解题报告:268. Missing Number
2016-09-14 11:01
369 查看
题意:
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?
难度:Medium
解题思路:
因为目标数组包含了0,1,2……n,而当前数组缺少了刚好一个元素。这就意味着目标序列所有元素的和和当前数组所有元素之和的差值就是这个缺少的元素。比如目标数组为{0,1,2,3,4},当前数组为{0,1,3,4},比较一下两组数组,缺少的那个元素就等于两组元素之和的差。 这样只需要用等差数列求和公式求出目标数组的所有元素之和 target=n*(n+1)/2, 再遍历一次当前数组,求出所有元素之和sum,返回target-sum即可。不需要另外开数组,减少了内存的开销。时间复杂度为O(n)
class Solution {
public:
int missingNumber(vector<int>& nums) {
int n=nums.size();
int target=0;
target=n*(n+1)/2;
int sum=0;
for(int i = 0;i<nums.size();i++)
{
sum+=nums[i];
}
return target-s
4000
um;
}
};
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?
难度:Medium
解题思路:
因为目标数组包含了0,1,2……n,而当前数组缺少了刚好一个元素。这就意味着目标序列所有元素的和和当前数组所有元素之和的差值就是这个缺少的元素。比如目标数组为{0,1,2,3,4},当前数组为{0,1,3,4},比较一下两组数组,缺少的那个元素就等于两组元素之和的差。 这样只需要用等差数列求和公式求出目标数组的所有元素之和 target=n*(n+1)/2, 再遍历一次当前数组,求出所有元素之和sum,返回target-sum即可。不需要另外开数组,减少了内存的开销。时间复杂度为O(n)
class Solution {
public:
int missingNumber(vector<int>& nums) {
int n=nums.size();
int target=0;
target=n*(n+1)/2;
int sum=0;
for(int i = 0;i<nums.size();i++)
{
sum+=nums[i];
}
return target-s
4000
um;
}
};
相关文章推荐
- Leetcode 81. Search in Rotated Sorted Array II 旋转数组查询2 解题报告
- [Leetcode] 18. 4Sum 解题报告
- [Leetcode] 105. Construct Binary Tree from Preorder and Inorder Traversal 解题报告
- Leetcode 413. Arithmetic Slices 所有等差序列 解题报告
- [LeetCode]Product of Array Except Self,解题报告
- 【LeetCode】101. Symmetric Tree 解题报告
- [Leetcode] 24. Swap Nodes in Pairs 解题报告
- 【LeetCode】653. Two Sum IV - Input is a BST 解题报告
- [leetcode] 320. Generalized Abbreviation 解题报告
- 【LeetCode】107.Binary Tree Level Order Traversal II(Easy)解题报告
- [Leetcode] 109. Convert Sorted List to Binary Search Tree 解题报告
- [Leetcode] 187. Repeated DNA Sequences 解题报告
- Letter Combinations of a Phone Number --leetcode解题报告
- [Leetcode] 198. House Robber 解题报告
- 【LeetCode】199.Binary Tree Right Side View(Medium)解题报告
- LeetCode(33) Search in Rotated Sorted Array解题报告
- 【LeetCode】404.Sum of Left Leaves(Easy)解题报告
- [Leetcode] 643. Maximum Average Subarray I 解题报告
- 【LeetCode】House Robber I & II 解题报告
- [LeetCode]406. Queue Reconstruction by Height 解题报告