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

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

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

输出:5,6

输入:nums = 1,1

输出:2

遍历nums,将遇到的元素index作为索引,让numsindex增加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;
    }

}
相关推荐
酿情师14 小时前
区块链共识算法深度拆解:PoW、PoS、PBFT、Raft 原理解析
算法·区块链·共识算法
MindUp14 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
hansang_IR14 小时前
【记录】「SCOI2016」三道模拟赛/26.7.12
c++·算法
NG47714 小时前
【软件设计与体系结构】-策略设计模式
java·设计模式·软件工程
退休倒计时15 小时前
【每日一题】LeetCode 39. 组合总和 TypeScript
算法·leetcode·typescript
不是az15 小时前
力控相关知识点
算法·机器学习·最小二乘法
程序员天天困15 小时前
优雅记录操作日志:从注解到 SpEL 的全链路实践与开源方案对比
java·后端
战血石LoveYY15 小时前
Integer类型超限,导致数据异常
java·算法
紫金修道15 小时前
PnP算法介绍(Perspective-n-Point)
算法
乐观的Terry16 小时前
1、为什么要自己造发布系统
java·spring boot·后端·spring cloud·架构