remove duplicates from sorted array

woori·2022년 11월 24일
0

leetcode_study

목록 보기
1/4

문제 링크 :

https://leetcode.com/explore/featured/card/top-interview-questions-easy/92/array/727/

문제 설명 :

감소하지 않는 순서로 정렬된 배열이 주어지고, 그 배열내에서 중복요소를 제거하여 갯수를 리턴하는 문제

풀이방법 :
1) 빈 벡터를 하나 생성하여 unique number 를 저장하도록 함
2) 배열은 재생성, 카피하지 않고, 기존 배열 그대로 사용
3) insert number, i 두 개의 비교요소를 선언
4) 맨 처음 요소를 vector push 하고 반복문은 index 1번부터 시작한다. 0번째 index는 어차피 고유 숫자일테니 변경할 필요없음
5) i index가 p 맨끝요소와 비교하여 같으면 index만 증가 하고 continue; , 다른 값이면 p 벡터에 push하고, insert index값 을 i번째 값으로 바꿔준 뒤 insert index 증가.

class Solution{
  public:
    int removeDuplicates(vector<int>& nums) {
      int insert_index = 1;
      int i;
      
      vector<int> p;
      p.push_back(nums[0]);
      
      for(vector<int>::size_type i=1; i<nums.size(); i++) {
        if(nums.at(i) == p.back()) {
          continue;
        } else {
          p.push_back(nums.at(i));
          nums[insert_idx] = nums.at(i);
          insert_idx++;
        }
      }
      return p.size();
    }
  };

제출결과 : 실행속도는 그나마 빠른편 메모리사용량 하위권 ..??

profile
기록하는개발자

0개의 댓글