找到所有数组中消失的数字(java)

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

输入:nums = [4,3,2,7,8,2,3,1]

输出:[5,6]

输入:nums = [1,1]

输出:[2]

遍历nums,将遇到的元素index作为索引,让nums[index]增加nums.length;因为原来nums数组中的元素范围在[1, n],所以遍历完成后,所有的nums中的元素不大于nums.length的就是没出现过的元素。

java 复制代码
import java.util.ArrayList;
import java.util.List;

class Solution {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        int n = nums.length;
        for(int num:nums) {
            int x = (num-1) % n;
            nums[x]+=n;
        }
        List<Integer> ret = new ArrayList<Integer>();
        for(int i = 0;i<n;i++) {
            if(nums[i]<=n)
                ret.add(i+1);
        }
        return ret;
    }

}
相关推荐
lizz312 小时前
从 JUnit 深入理解 Java 注解与反射机制
java·开发语言·junit
编啊编程啊程5 小时前
JUC之AQS
java·开发语言·jvm·c++·kafka
孟婆来包棒棒糖~5 小时前
Maven快速入门
java·spring boot·spring·maven·intellij-idea
2501_924889557 小时前
商超高峰客流统计误差↓75%!陌讯多模态融合算法在智慧零售的实战解析
大数据·人工智能·算法·计算机视觉·零售
jingfeng5148 小时前
C++模板进阶
java·c++·算法
杨杨杨大侠8 小时前
附录 1:[特殊字符] Maven Central 发布完整指南:从零到成功部署
java·spring boot·maven
ahauedu8 小时前
AI资深 Java 研发专家系统解析Java 中常见的 Queue实现类
java·开发语言·中间件
地平线开发者8 小时前
征程 6X | 常用工具介绍
算法·自动驾驶
小厂永远得不到的男人9 小时前
基于 Spring Validation 实现全局参数校验异常处理
java·后端·架构