Leetcode Java Remove Duplicates from Sorted Array
업데이트:
문제
코드
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseKGroup(ListNode head, int k) {
int idx = 0;
for (int n : nums) {
if (idx == 0 || n > nums[idx - 1]) {
nums[idx++] = n;
}
}
return idx;
}
}
결과
설명
- 주어진 배열 nums는 이미 정렬이 되어 있으므로, 배열 내 이전 index의 값이 다른 경우의 개수만 확인하면 된다.
- 문제의 결과는 중복되지 않은 배열의 값의 개수이므로, 새 배열을 선언하여 넣지 않아도 된다.
- 배열의 첫 값은 무조건 중복되지 않은 값이므로, count를 증가시킨다.
- 가장 중요한 idx 값을 점층적으로 증가시키면서 nums[idx++] 값에 중복되지 않은 값을 넣는 이유는, 중복되지 않은 값을 비교하면서 count를 세기 위함이다.
- 반복이 종료되면, 중복되지 않은 값의 개수를 저장하는 idx를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기