반응형

[LeetCode, 리트코드] Remove Duplicates from Sorted Array

반응형

1. Problem

 

주어진 정수 배열이 주어질 때, 배열에 있는 중복된 수를 제거하고 중복이 제거된 상태의 배열의 크기를 반환하는 함수를 작성하라.


2. Solution


c++에서는 iterator를 사용해서 중복된 vector의 요소를 제거하는 코드를 작성하면 된다. 유의해야할 것은 erase 메서드는 해당하는 iterator를 삭제할 경우 삭제된 바로 그 다음 요소를 가르키는 iterator를 반환하게 된다는 사실이다.

 

3. Code

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        vector<int>::iterator it = nums.begin();
        vector<int>::iterator prev = nums.begin();
        while(it != nums.end()){
            if(it == nums.begin()){
                it++;;
            }
            else if(*prev != *it){
                prev++;
                it++;
            }
            else {
                it = nums.erase(it);
            }
        }
        
        return nums.size();
    }
};


 


반응형

이 글을 공유하기

댓글

Designed by JB FACTORY