Leetcode-448 找到数组中消失的数字


原理:每个num[i]对应一个数组下标,对所有num[i]下标对应的数变负以后,没有变负的数没有下表对应,这个下标对应的数就缺失(好难想)。把数组下标当成一个有序数列用,数组里面的元素正负性对数列标记

java 复制代码
class Solution {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        int n=nums.length;
        for(int num:nums){
            // 对n取模还原本来的值
            int x=(num-1)%n;
            nums[x]+=n;
        }
        List<Integer> result=new ArrayList<Integer>();
        for(int i=0;i<n;i++){
            if(nums[i]<=n){
                result.add(i+1);
            }
        }
        return result;
    }
}
相关推荐
Liu628883 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
AI科技星3 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
参.商.3 小时前
【Day41】143. 重排链表
leetcode·golang
条tiao条4 小时前
KMP 算法详解:告别暴力匹配,让字符串匹配 “永不回头”
开发语言·算法
干啥啥不行,秃头第一名4 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
zzh940774 小时前
Gemini 3.1 Pro 硬核推理优化剖析:思维织锦、动态计算与国内实测
算法
2301_807367194 小时前
C++中的解释器模式变体
开发语言·c++·算法
愣头不青5 小时前
617.合并二叉树
java·算法
MIUMIUKK5 小时前
双指针三大例题
算法
灵感__idea5 小时前
Hello 算法:复杂问题的应对策略
前端·javascript·算法