320x100
https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/
중복 가능한 정렬된 상태의 정수 목록이 주어졌을 때, 별도의 메모리 공간을 사용하지 않는 방법으로 2개 이하의 중복만 허용한 채 목록을 재구성하고, 유효한 정수의 갯수와 해당 목록을 수정하여 반환하는 문제다.
예를 들어
Input: nums = [1,1,1,2,2,3] 인 경우
Output: 5, nums = [1,1,2,2,3,_] 으로 반환한다. (_는 사용하지 않는 원소라 무시한다).
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int garbeagePos = nums.size() - 1;
int elementCount = nums.size();
int garbeageCount = 0;
int prevNum = nums[0];
bool duplication = false;
for (int i=1; i<nums.size(); ++i)
{
if (prevNum == nums[i])
{
if (duplication)
++garbeageCount;
else
duplication = !duplication;
}
else
{
duplication = false;
prevNum = nums[i];
}
nums[i - garbeageCount] = nums[i];
}
return elementCount - garbeageCount;
}
};
320x100
'코딩테스트 준비 > leetcode' 카테고리의 다른 글
82. Remove Duplicates from Sorted List II (0) | 2021.08.29 |
---|---|
81. Search in Rotated Sorted Array II (0) | 2021.08.28 |
64. Minimum Path Sum (0) | 2021.08.26 |
77. Combinations (0) | 2021.08.24 |
79. Word Search (0) | 2021.08.23 |