丢失的数字

给定一个包含 [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 中。

提示:

  • n == nums.length
  • 1 <= n <= 104
  • 0 <= nums[i] <= n
  • nums 中的所有数字都 独一无二

#法一 排序
class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        nums.sort()
        for i in range(len(nums)):
            if nums[i]!=i:
                return i
            if nums[-1]!=len(nums):
                return len(nums)

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        nums.sort()
        for i, num in enumerate(nums):
            if num!=i:
                return i
        return len(nums)


#法二 哈希集合
class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        s = set(nums)
        for i in range(len(nums) + 1):
            if i not in s:
                return i
#法三 位运算

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        res=nums[0]
        for x in nums[1:]:
            res^=x
        for y in range(len(nums)+1):
            res^=y
        return res

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        xor = 0
        for i, num in enumerate(nums):
            xor ^= i ^ num
        return xor ^ len(nums)

#法四 数学
class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        n = len(nums)
        total = n * (n + 1) // 2
        arrSum = sum(nums)
        return total - arrSum

相关推荐

  1. 丢失数字

    2023-12-28 00:32:03       54 阅读
  2. 【Leetcode】268.丢失数字

    2023-12-28 00:32:03       56 阅读
  3. 【力扣】268.丢失数字

    2023-12-28 00:32:03       34 阅读
  4. 【Unity】ComputeShader丢失处理数据bug

    2023-12-28 00:32:03       60 阅读
  5. 力扣(leetcode)第268题丢失数字(Python)

    2023-12-28 00:32:03       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 00:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 00:32:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 00:32:03       82 阅读
  4. Python语言-面向对象

    2023-12-28 00:32:03       91 阅读

热门阅读

  1. 创建ROS的软件包服务器

    2023-12-28 00:32:03       63 阅读
  2. 【AUTOSAR】软件架构中的接口设计与跨核通信解析

    2023-12-28 00:32:03       63 阅读
  3. kubernetes面试之calico网络组件的实现原理

    2023-12-28 00:32:03       69 阅读
  4. C语言第五十七弹---模拟使用memmove函数

    2023-12-28 00:32:03       60 阅读
  5. 【uniapp】Uniapp cli 自动化打包脚本实现

    2023-12-28 00:32:03       65 阅读
  6. uniapp常见的标签

    2023-12-28 00:32:03       64 阅读
  7. 1.Linux是什么与如何学习

    2023-12-28 00:32:03       66 阅读
  8. Kotlin 数据类

    2023-12-28 00:32:03       56 阅读
  9. JVM钩子

    2023-12-28 00:32:03       55 阅读
  10. 什么是 MVVM?

    2023-12-28 00:32:03       55 阅读