조컴퓨터

26. Remove Duplicates from Sorted Array 본문

LeetCode/Algorithms

26. Remove Duplicates from Sorted Array

챠오위 2021. 10. 17. 20:02

 

배열로 해결함

 

class Solution {
    public int removeDuplicates(int[] nums) {       
        int idx = 1;
        for( int i=1; i<nums.length; i++ ) {
            if( nums[i] == nums[idx-1] ) {
                continue;
            }
            nums[idx] = nums[i];
            idx++;
        }
        return idx;        
    }
}

 

index 값을 1로 지정하고 해당값을 기준으로 for문을 돌려 nums 값과 비교했다.

value 값이 같으면 for문을 계속 돌아가게 하고,

value 값이 같지 않으면 for문을 멈추고 해당 값을 멈춘 값에 대입한다.

index 값 또한 +1 씩 추가하여 다시 처음으로 돌아가 for문을 돌려 nums 값과 비교한다.

 

풀이는 다음과 같다.

 

0 0 1 1 1 2 2 3 3 4
int idx = 1
nums[1] == nums[0] 0 0 
nums[2] == nums[0] 1 0 stop
nums[1] = nums[2] 

0 1 1 1 1 2 2 3 3 4
int idx = 2
nums[3] == nums[1] 1 1
nums[4] == nums[1] 1 1
nums[5] == nums[1] 2 1 stop
nums[2] = nums[5]  

0 1 2 1 1 2 2 3 3 4
int idx = 3
nums[6] == nums[2] 2 2
nums[7] == nums[2] 3 2 stop
nums[3] = nums[7] 

0 1 2 3 1 2 2 3 3 4
int idx = 4
nums[8] == nums[3] 3 3 
nums[9] == nums[3] 4 3 stop
nums[4] = nums[9] 

0 1 2 3 4 2 2 3 3 4
int idx = 5;

 

algorithms, LeetCode, Valid Parentheses

'LeetCode > Algorithms' 카테고리의 다른 글

28. Implement strStr()  (0) 2021.10.20
27. Remove Element  (0) 2021.10.19
*21. Merge Two Sorted Lists  (0) 2021.10.17
*20. Valid Parentheses  (0) 2021.10.17
**14. Longest Common Prefix  (0) 2021.10.14