题目
给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。
示例 1:
输入: [3,0,1]
输出: 2
示例 2:
输入: [9,6,4,2,3,5,7,0,1]
输出: 8
说明:
你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?
代码模板:
class Solution {
public int missingNumber(int[] nums) {
}
}
分析
首先求出这个数组本身不缺失的和,然后计算出它本身的和,最后用不缺失的和减去本身的和就能得出这个缺失的数。
解答
class Solution {
public int missingNumber(int[] nums) {
int orinSum = (1 + nums.length) * (nums.length)/2;
int sum = 0;
for(int i =0 ;i<nums.length;i++){
sum = sum+nums[i];
}
return orinSum-sum;
}
}

本文介绍了一种寻找数组中缺失数字的算法,该算法利用线性时间复杂度和常数空间复杂度,通过计算数组应有总和与实际总和之差来确定缺失的数字。示例展示了输入为[3,0,1]时输出2,输入为[9,6,4,2,3,5,7,0,1]时输出8。

被折叠的 条评论
为什么被折叠?



