Remove Duplicates from Sorted Array
class Solution {
public int removeDuplicates(int[] nums) {
int uniqueIndex = 1;
for (int index = 1; index < nums.length; index ++) {
if (nums[index] != nums[uniqueIndex - 1]) {
nums[uniqueIndex] = nums[index];
uniqueIndex ++;
}
}
return uniqueIndex;
}
}
이전 포스팅에서 언급했듯이, 첫 번째로 고유한 원소를 보호하기 위해서는 다음 원소부터 순회하면 된다.
즉, for 문에서 순회할 인덱스(index)를 1부터 시작하면 된다.
비교를 하는 행위가 곧 uniqueIndex 가 가리키는 원소가 고유한 원소인지 확인하는 행위인 셈이다.
따라서, 값이 다를 경우 - 곧 고유한 원소이므로 uniqueIndex 를 활용하여 배열의 1번째부터 차곡차곡 쌓으면 된다.
이를 반환하면 중복되는 원소는 제거되고, 왼쪽에서부터 오른쪽 순서대로 고유한 원소만 쌓인 배열이 반환될 것이다.
다음 주부터는 LeetCode SQL 1문제씩 같이 풀이를 진행해보도록 하겠다.
개인적으로 난이도가 어느 정도일지 궁금하다. 뭔가 LeetCode style 대로 문제 설명은 상당히 깔끔할 것 같은데..?