본문 바로가기

프로그램 강좌

[LeetCode]26. Remove Duplicates from Sorted Array

Input/Output

Input Output
1,1,2 2
0,0,1,1,2,2,3,3,4 5




1차시도(성공)

성공이긴 했지만, 이중 for문을 썼더니 너무 런타임이 오래 걸렸다.
2차시도에는 다른 사람들이 푼걸로 숙지했다.

var removeDuplicates = function(nums) {
    for(let i=nums.length-1;i>0;i--){
        for(let j=i-1;j>=0;j--){
            if(nums[i]===nums[j]){
                nums.splice(j,1);
            }
        }
    }
};

2차시도

비교값이 같으면 중지하고 반복문의 처음으로 이동.
다르면 k값을 증가시키고 다른값을 복사, 값을 바꾸는 이유는 k값이 다음 비교를 위한 기준값이기 때문.

var removeDuplicates = function(nums) { 
    let k=0;
    for(let i=0;i<nums.length;i++){ 
        if(nums[k]===nums[i]){ 
            continue;
        }
        else { 
            k++; 
            nums[k]=nums[i];
        }
    }
    return k+1;
};

 

 

728x90