Missing Number
Total Accepted: 579 Total Submissions: 1615 My Submissions Question Solution
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.
【解题思路】
解法1、排序,比较每个位置的值和序列号是否相等,即nums[i]和i,不相等即求出值。
解法2、求(n*(n+1))/2和数组和的差值。参考 https://leetcode.com/discuss/53778/java-solution-o-1-space-and-o-n-in-time
Java AC 1
Total Accepted: 579 Total Submissions: 1615 My Submissions Question Solution
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.
【解题思路】
解法1、排序,比较每个位置的值和序列号是否相等,即nums[i]和i,不相等即求出值。
解法2、求(n*(n+1))/2和数组和的差值。参考 https://leetcode.com/discuss/53778/java-solution-o-1-space-and-o-n-in-time
Java AC 1
public class Solution {
public int missingNumber(int[] nums) {
if(nums == null || nums.length == 0){
return 0;
}
int n = nums.length;
Arrays.sort(nums);
int missNum = 0;
for(int i = 0; i < n; i++){
if(nums[i] != i){
return i;
}
}
return n;
}
}
Java AC 2
public class Solution {
public int missingNumber(int[] nums) {
int sum = 0;
for(int num: nums){
sum += num;
}
int n = nums.length;
return (n * (n + 1))/ 2 - sum;
}
}
Leetcode github地址:https://github.com/wzqwsrf/Leetcode