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

package leetcode;

import java.util.ArrayList;
import java.util.List;

public class demo_448 {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        List<Integer> list=new ArrayList<Integer>();
        //将数组中对应的位置的数变为负数
        for(int i=0;i<nums.length;i++) {
            nums[Math.abs(nums[i])-1]=-Math.abs(nums[Math.abs(nums[i])-1]);
        }
        for(int i=0;i<nums.length;i++) {
            //找出那些数没有变成负数的数,则他们的小标就是没有出现的数
            if(nums[i]>0) {
                list.add(i+1);
            }
        }
        System.out.println(list);
        return list;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_448 demo=new demo_448();
        int[] nums= {4,3,2,7,8,2,3,1};
        demo.findDisappearedNumbers(nums);
    }
}

 

posted on 2022-04-22 11:36  一仟零一夜丶  阅读(17)  评论(0)    收藏  举报