코딩테스트

[leetcode] 26. Remove Duplicates from Sorted Array

nayoon 2024. 8. 3. 16:56

문제

 

class Solution {
    public int removeDuplicates(int[] nums) {
        int index = 0;
        for(int num: nums) {

            if (index < 1 || num > nums[index - 1]) {
                nums[index] = num;
                index++;
            }

        }
        return index;
    }
}

 

 

Set, List 써서 푸는 풀이

/**
    Set으로 nums를 하나씩 체크
    이후 nums에 앞에서부터 Set에 있는 elements를 하나씩 넣어주기

    다만 Set의 경우 입력한 순서를 보장하고 있지 않기 때문에 List로 정렬을 해야함
 */
import java.util.*;

class Solution {
    public int removeDuplicates(int[] nums) {
        Set<Integer> set = new HashSet<>();

        for(int num: nums) {
            set.add(num);
        }

        List<Integer> list = new ArrayList<>(set);
        Collections.sort(list);
        
        int index = 0;
        for(int num: list) {
            nums[index++] = num;
        }

        return index;
    }
}