Problem
주어진 정렬된 배열에서 중복을 제거하여 배열(길이) 를 리턴하는 문제입니다.
Solution
처음 index 값을 1로 저장해놓습니다.
반복문을 돌면서 nums[i] 와 nums[i+1] 이 달라진다면 중복된 값이 끝났다는 뜻이기 때문에 nums[index] = nums[i+1] 로 새 값을 넣어줍니다.
반복문이 끝난 후 nums 배열의 index 길이만큼 중복이 제거된 상태가 됩니다.
이 문제는 특이하게 int 형을 return 하는데 nums 에서 return 한 길이까지가 제출하는 정답이 되는 것 같습니다.
Java Code
class Solution {
public int removeDuplicates(int[] nums) {
int index = 1;
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i] != nums[i + 1]) {
nums[index++] = nums[i + 1];
}
}
return index;
}
}'알고리즘 문제 > LeetCode' 카테고리의 다른 글
| [LeetCode Easy] Count and Say (Java) (0) | 2020.12.28 |
|---|---|
| [LeetCode Easy] Min Stack (Java) (0) | 2020.12.28 |
| [LeetCode Easy] Two Sum (Java, Kotlin) (2) | 2020.12.28 |
| [LeetCode Easy] Maximum Subarray (Java) (0) | 2020.12.28 |
| [LeetCode Easy] Symmetric Tree (Java) (0) | 2020.12.28 |