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
相关推荐
一去不复返的通信er1 小时前
力扣-图论-岛屿数量
算法·leetcode·图论
考研保研资料分享2 小时前
985工科跨保上财应用统计:数学笔试、匿名面试与机试复盘
面试·职场和发展
程序 代码狂人4 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
HDU-Dade4 小时前
【校招笔试真题】简要介绍 Self-Attention 的前沿算法
人工智能·算法
Xin7705 小时前
LeetCode 79. 单词搜索(DFS 回溯法)
leetcode
小郎君6586 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
算法
邵奈一7 小时前
GPT-6.1 Terra速度是Sol的3倍,价格减半
算法
RaaS1007 小时前
Node.js Brotli RCE 漏洞自查指南:fetch、undici、axios 都在影响面,三分钟确认你的版本
人工智能·深度学习·算法
shehuiyuelaiyuehao7 小时前
算法56,重排链表
数据结构·算法·链表