Remove Duplicates from Sorted Array

anhyoungbin·2024년 1월 10일

leetcode

목록 보기
3/4

문제 위치
오름차순으로 정렬된 숫자 배열이 있다.

중복된것을 없애면 된다.

nums[i-1] != num[i] 인 값을 담고, 아닌 값을 걸르면 된다.

class Solution {
    public int removeDuplicates(int[] nums) {
        // 정렬되어 있음. 중복된것을 없애야함

        int[] result = new int[nums.length];
        int cur_result = 1;

        result[0] = nums[0];
        for(int i=1; i<nums.length; i++){
            if(nums[i-1] != nums[i]) result[cur_result++] = nums[i];
        }

        for(int i=0; i<cur_result; i++){
            nums[i] = result[i];
        }

        return cur_result;
    }
}

result 를 안쓰고 nums에 새로운 iterlator를 쓰면 더 효율적으로 동작한다고 한다.

class Solution {
    public int removeDuplicates(int[] nums) {
        int j = 1;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] != nums[i - 1]) {
                nums[j] = nums[i];
                j++;
            }
        }
        return j;
    }
}
profile
하나부터열까지

0개의 댓글