LeeCode448找到所有数组中消失的数字(Java)(思维)

题目链接:LeeCode448找到所有数组中消失的数字
题目描述:在这里插入图片描述
遍历一遍原始数组,每一个num[num[i]]变成负数,缺失的下标位置则不会变成负数,所以就可以找出来了

class Solution {
    
    
    public List<Integer> findDisappearedNumbers(int[] nums) {
    
    
        List<Integer> list=new ArrayList<>();
        for (int i = 0; i < nums.length; i++) {
    
    
            if(nums[Math.abs(nums[i])-1]>0)
            nums[Math.abs(nums[i])-1]=0-nums[Math.abs(nums[i])-1];
        }
        for (int i = 0; i < nums.length; i++) {
    
    
            if(nums[i]>0)list.add(i+1);
        }
        return list;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43590593/article/details/113621681