Leetcode 448. 找到所有数组中消失的数字

集合秒杀

python 复制代码
class Solution:
    def findDisappearedNumbers(self, nums: List[int]) -> List[int]:
        return list(set(list(range(1, len(nums)+1))) - set(nums))

哈希

哈希的思路,借用原数组:

第一,可以用哈希表记录数组中出现的数字,再逐一检查1,n中哪些数字缺失。

第二,为了将空间优化到O(1),可以利用原数组本身作为哈希表,通过给对应位置的元素加n来标记数字出现过。

第三,遍历完成后,数组中数值未超过n的位置即对应缺失的数字。

python 复制代码
class Solution:
    def findDisappearedNumbers(self, nums: List[int]) -> List[int]:
        n = len(nums)
        for num in nums:
            x = (num - 1) % n
            nums[x] += n
        
        ret = [i + 1 for i, num in enumerate(nums) if num <= n]
        return ret
相关推荐
mifengxing1 小时前
LeetCode 189 轮转数组|3种解法拆解,从暴力到O(1)原地最优解
数据结构·算法·leetcode
MIngYaaa5201 小时前
2026暑期牛客多校3 2026-7-24
数据结构·算法·000
geats人山人海2 小时前
算法基础第二讲 基础算法下
算法
阳明山水2 小时前
销量预测2026下半年:新架构、新基准与新共识
人工智能·深度学习·算法·机器学习·架构
知识分享小能手3 小时前
高等数学学习教程,从入门到精通,定积分 — 知识点全面总结(9)
学习·算法·机器学习
noipp3 小时前
推荐题目:洛谷 P3726 [AHOI2017/HNOI2017] 抛硬币
c语言·数据结构·c++·算法·编程·洛谷·luogu
c238563 小时前
C/C++每日一练14
c语言·c++·算法
程序员-珍3 小时前
力扣 877. 石子游戏
算法·leetcode·游戏
Kina_C3 小时前
HAProxy 负载均衡算法全解析:从静态轮询到一致性哈希的实战指南
linux·算法·负载均衡·哈希算法·haproxy