congr / world

2 stars 1 forks source link

LeetCode : 442. Find All Duplicates in an Array #448

Closed congr closed 5 years ago

congr commented 5 years ago

https://leetcode.com/problems/find-all-duplicates-in-an-array/

image

congr commented 5 years ago

O(N)

class Solution {
    public List<Integer> findDuplicates(int[] nums) {
        List<Integer> list = new ArrayList();

        for (int i=0; i<nums.length; i++) {
            int index = Math.abs(nums[i])-1;
            nums[index] *= -1;
            if (nums[index] > 0) list.add(index+1); // !!!
        }

        return list;
    }
}