【Leetcode】448. 寻找数组中丢失的元素(Find All Numbers Disappeared in an Array)

    xiaoxiao2022-07-07  201

    Leetcode - 448 Find All Numbers Disappeared in an Array (Easy)

    题目描述:数组中元素的范围为 [1, n],有一些重复的元素和一些丢失元素,寻找所有丢失的元素。

    Input: [4,3,2,7,8,2,3,1] Output: [5,6] public List<Integer> findDisappearedNumbers(int[] nums) { List<Integer> res = new ArrayList<>(); for (int i = 0; i < nums.length; i++) { while (nums[i] != i + 1 && nums[nums[i] - 1] != nums[i]) { swap(nums, i, nums[i] - 1); } } for (int i = 0; i < nums.length; i++) { if (nums[i] != i + 1) { res.add(i + 1); } } return res; } public void swap(int[] nums, int i, int j) { int t = nums[i]; nums[i] = nums[j]; nums[j] = t; }
    最新回复(0)