🚩传送门:力扣题目

题目

一个长度为[LC]256. 0~n-1 中缺失的数字 - 图1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围[LC]256. 0~n-1 中缺失的数字 - 图2之内。在范围[LC]256. 0~n-1 中缺失的数字 - 图3内的[LC]256. 0~n-1 中缺失的数字 - 图4个数字中有且只有一个数字不在该数组中,请找出这个数字。

示例 1:

输入: [0,1,3] 输出: 2

示例 2:

输入: [0,1,2,3,4,5,6,7,9] 输出: 8

解题思路:数学公式

对于 [LC]256. 0~n-1 中缺失的数字 - 图5的数组,如果内容不缺失数组应该是 [LC]256. 0~n-1 中缺失的数字 - 图6,数组总和应该是 [LC]256. 0~n-1 中缺失的数字 - 图7求和公式

对于 [LC]256. 0~n-1 中缺失的数字 - 图8的数组,总和是 [LC]256. 0~n-1 中缺失的数字 - 图9,那么缺失的数字[LC]256. 0~n-1 中缺失的数字 - 图10 应该为[LC]256. 0~n-1 中缺失的数字 - 图11

复杂度分析

时间复杂度:[LC]256. 0~n-1 中缺失的数字 - 图12,其中 [LC]256. 0~n-1 中缺失的数字 - 图13 是数组 [LC]256. 0~n-1 中缺失的数字 - 图14 的长度。

空间复杂度:[LC]256. 0~n-1 中缺失的数字 - 图15

官方代码

  1. class Solution {
  2. public int missingNumber(int[] nums) {
  3. return (1+nums.length)*(nums.length)/2-Arrays.stream(nums).sum();
  4. }
  5. }