找到所有数组中消失的数字(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;
    }

}
相关推荐
黑色的山岗在沉睡1 分钟前
LeetCode 494. 目标和
算法·leetcode·职场和发展
haoly19893 小时前
数据结构和算法篇-线性查找优化-移至开头策略
数据结构·算法·移至开头策略
瓯雅爱分享3 小时前
Java+Vue构建的采购招投标一体化管理系统,集成招标计划、投标审核、在线竞价、中标公示及合同跟踪功能,附完整源码,助力企业实现采购全流程自动化与规范化
java·mysql·vue·软件工程·源代码管理
mit6.8245 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
诸神缄默不语6 小时前
Maven用户设置文件(settings.xml)配置指南
xml·java·maven
任子菲阳6 小时前
学Java第三十四天-----抽象类和抽象方法
java·开发语言
学Linux的语莫6 小时前
机器学习数据处理
java·算法·机器学习
找不到、了6 小时前
JVM的即时编译JIT的介绍
java·jvm
earthzhang20217 小时前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程
西瓜er7 小时前
JAVA:Spring Boot 集成 FFmpeg 实现多媒体处理
java·spring boot·ffmpeg