列表

详情


268. 丢失的数字

给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

 

示例 1:

输入:nums = [3,0,1]
输出:2
解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例 2:

输入:nums = [0,1]
输出:2
解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例 3:

输入:nums = [9,6,4,2,3,5,7,0,1]
输出:8
解释:n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。

示例 4:

输入:nums = [0]
输出:1
解释:n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。

 

提示:

 

进阶:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?

相似题目

缺失的第一个正数

只出现一次的数字

寻找重复数

情侣牵手

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int missingNumber(vector<int>& nums) { } };

php 解法, 执行用时: 64 ms, 内存消耗: 16.5 MB, 提交时间: 2021-05-14 17:22:27

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function missingNumber($nums) {
        $n = count($nums);
        $ans = $n;
        for($i=0;$i<$n; $i++) {
            $ans ^= $i ^ $nums[$i];
        }
        return $ans;
    }
}

php 解法, 执行用时: 36 ms, 内存消耗: 16.5 MB, 提交时间: 2021-05-14 17:16:28

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function missingNumber($nums) {
        $n = count($nums);
        return $n*($n+1)/2 - array_sum($nums);
    }
}

上一题