k=2 로설정해서 중복을 2개씩 허용할수 있다.
만약 i 번째 가 0번째랑 같지 k번째 인덱스를 바꿔주고 k 를 증가시킨다.
비내림차순nums 으로 정렬된 정수 배열이 주어지면 각 고유 요소가 최대 두 번 나타나도록 일부 중복 항목을 제자리에서 제거합니다 . 요소의 상대적 순서는 동일하게 유지되어야 합니다 .
일부 언어에서는 배열 길이를 변경할 수 없으므로 대신 결과를 배열의 첫 번째 부분nums 에 배치해야 합니다 . 더 공식적으로 말하면, k중복 항목을 제거한 후 요소가 있는 경우 첫 번째 k요소가 nums 최종 결과를 보유해야 합니다. 첫 번째 요소 외에 무엇을 남겨두는지는 중요하지 않습니다 k .
의 첫 번째 슬롯 k에 최종 결과를 넣은 후 반환합니다 .knums
다른 어레이에 추가 공간을 할당 하지 마십시오 . O(1) 추가 메모리를 사용 하여 입력 배열을 내부에서 수정하여 이를 수행해야 합니다 .
class Solution {
public int removeDuplicates(int[] nums) {
int k = 2;
for(int i =2 ; i< nums.length; i++){
if (nums[i] != nums[k - 2]) {
nums[k] = nums[i];
k++;
}
}
return k;
}
}