leetcode448:找到数组中所有消失的数字

找到数组中所有消失的数字

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

java 复制代码
public List<Integer> findDisappearedNumbers(int[] nums) {
        for (int i = 0; i < nums.length; i++) {
            int index = Math.abs(nums[i]);
            nums[index - 1] = nums[index - 1] < 0 ? nums[index - 1] : -nums[index - 1];
        }
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < nums.length; i++) {
            if(nums[i]>0){
                list.add(i+1);
            }
        }
        return list;
    }

标记索引法

相关推荐
Nonoas9 小时前
动态代理:发布订阅的高级玩法
java·ide·intellij-idea
程序员-周李斌10 小时前
Java 死锁
java·开发语言·后端
皮皮林55111 小时前
Prometheus+Grafana,打造强大的监控与可视化平台
java
JasmineWr11 小时前
CompletableFuture相关问题
java·开发语言
零雲11 小时前
java面试:知道java的反射机制吗
java·开发语言·面试
java1234_小锋12 小时前
Java进程占用的内存有哪些部分?
java
sxlishaobin12 小时前
Spring Bean生命周期详解
java·后端·spring
曹牧12 小时前
Java:Assert.isTrue()
java·前端·数据库
梦里小白龙12 小时前
JAVA 策略模式+工厂模式
java·开发语言·策略模式
你不是我我13 小时前
【Java 开发日记】我们来说一说 Redis 主从复制的原理及作用
java·redis·github