이 시리즈의 이전 문제들과 비슷한 유형의 문제다.
다만 중복제거라는 점이 다름.
nums[i]
의 범위가 -100에서 100 사이이므로 절대 될 수 없는 값인 -101을 초기값으로 설정해두고 0번 인덱스부터 순회시키면 되겠다.
기본적인 아이디어는 기존과 같음.
별도의 인덱스를 두고 k번째까지만 덮어씌운다.
class Solution {
public int removeDuplicates(int[] nums) {
int last = -101;
int k = 0;
for (int i=0; i<nums.length; i++) {
if (nums[i] != last) {
nums[k++] = nums[i];
last = nums[i];
}
}
return k;
}
}
또는 그냥 nums[i] != nums[i - 1]
논리로 체크해도 될 듯.