
주어진 정수 배열 nums는 비내림차순으로 정렬되어 있으며, 각 고유한 요소가 최대 두 번 나타나도록 인플레이스로 일부 중복을 제거하십시오. 요소의 상대적인 순서는 동일해야 합니다.
일부 언어에서 배열의 길이를 변경할 수 없으므로, 대신 결과를 배열 nums의 첫 번째 부분에 배치해야 합니다. 더 정확하게 말하면, 중복을 제거한 후 k개의 요소가 있다면 nums의 첫 k개 요소는 최종 결과를 보유해야 합니다. 첫 번째 k개 요소 이후에 남은 요소는 중요하지 않습니다.
숫자의 첫 번째 k 슬롯에 최종 결과를 넣은 후 k를 반환합니다.
다른 배열에 대해 추가 공간을 할당하지 마십시오. 추가 메모리 O(1)을 사용하여 입력 배열을 인플레이스로 수정해야 합니다.
26. Remove Duplicates from Sorted Array 이전 문제 비슷하여 이전 코드를 조금 활용하여 해결하였습니다.
nums배열에 순차적으로 저장합니다.nums배열 순차적으로 저장합니다.nums배열 길이만큼 반복합니다.
if(nums길이가 0이면)
0리턴
int k = 1;
int count = 1;
for(nums의 두번째 index에서부터 탐색){
if(첫번째 정수 != n번째 정수){
num[k++] = nums[n번째 정수];
count = 1;
}
else if(count < 2 인 조건으로 중복 정수가 2개 이하 인지 확인)
num[k++] = nums[n번째 정수];
count++;
}
class Solution {
public int removeDuplicates(int[] nums) {
if(nums.length == 0)
return 0;
int k = 1;
int count = 1;
for(int i = 1; i < nums.length; i++){
if(nums[k-1] != nums[i]){
nums[k++] = nums[i];
count = 1;
}
else if(count < 2){
nums[k++] = nums[i];
count++;
}
}
return k;
}
}