您的位置:首页 > 其它

Leetcode: Missing Number

2015-12-24 08:50 183 查看
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?


因为输入数组是0,1,2,...,n。 把nums[i]放到i的位置上. nums[i] != i的即为missing number.

注意6-9行不可先令 temp = nums[i]

public class Solution {
public int missingNumber(int[] nums) {
int res = nums.length;
for (int i=0; i<nums.length; i++) {
if (nums[i] < nums.length && nums[nums[i]] != nums[i]) {
int temp = nums[nums[i]];
nums[nums[i]] = nums[i];
nums[i] = temp;
i--;
}
}
for (int i=0; i<nums.length; i++) {
if (nums[i] != i) res = i;
}
return res;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: