力扣448.找到数组中所有消失的元素

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。

示例 1:

复制代码
输入:nums = [4,3,2,7,8,2,3,1]
输出:[5,6]

示例 2:

复制代码
输入:nums = [1,1]
输出:[2]

提示:

  • n == nums.length
  • 1 <= n <= 105
  • 1 <= nums[i] <= n
cpp 复制代码
class Solution {
public:
/*//const int用于增强代码的安全性和可持续性,防止意外的修改,明确变量、参数和函数的性质
    const int mod = 998244353;*/ //可写可不写
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        int n = nums.size();
        for (auto& num : nums) {
            //将数组元素值映射到一个有效的索引范围内
            int x = (num - 1) % n;
            //判断索引元素的值是否被标记过
            if (nums[x] <= n) {
                //为被标记过
                nums[x] += n;
            }
        }
        vector<int> ret;
        for (int i = 0; i < n; i++) {
            //判断索引对应的数字是否在原始数组中出现
            if (nums[i] <= n) {
                //没有出现过
                //push_back像容器末尾添加元素
                ret.push_back(i + 1);
            }
        }
        return ret;
    }
};
相关推荐
洛水水2 分钟前
【力扣100题】27. 二叉树的最大深度
算法·leetcode·图论
bzmK1DTbd2 分钟前
K-Means聚类算法:无监督学习实战
算法·kmeans·聚类
_深海凉_10 分钟前
LeetCode热题100-删除链表的倒数第 N 个结点
算法·leetcode·链表
小雅痞19 分钟前
[Java][Leetcode middle] 73. 矩阵置零
java·leetcode·矩阵
Yzzz-F25 分钟前
Problem - 2043E - Codeforces EDU173
算法
栈溢出了29 分钟前
GraphSAGE 学习笔记
深度学习·神经网络·算法·机器学习
AI科技星33 分钟前
全域数学版木牛流马(融合仿生兽+古制复原终版优化方案)【乖乖数学】
人工智能·算法·数学建模·数据挖掘·量子计算
richard_yuu40 分钟前
数据结构精讲:图的最短路径与关键路径
数据结构·算法
智者知已应修善业1 小时前
【51单片机一个按键切合初始流水灯按一下对半闪烁按一下显示时间】2023-10-16
c++·经验分享·笔记·算法·51单片机
晚风叙码1 小时前
堆排序建堆策略对比:向上调整与向下调整的时间复杂度分析
算法