https://leetcode.com/problems/remove-duplicates-from-sorted-array
오름차순으로 정렬된 배열에서 중복된 값을 제거하는 문제입니다.
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size() == 0) return 0;
int count = 1;
for(int i=0; i<nums.size()-1;i++){
if(nums[i] != nums[i+1])
{
nums[count] = nums[i+1];
count++;
}
}
return count;
}
};
처음에는 map과 iter을 써서 iterator를 돌면서 map에서 값을 못 찾으면 iter을 지워버리는 식으로 짰습니다. 그랬더니 속도도 느리고 메모리도 너무 많이 사용을 하게 되어 고치게 되었습니다.
생각해보니 배열이 정렬되어 있고, for문을 돌아도 O(n)으로 할 수 있는데 너무 돌아간듯 싶었습니다.