Remove Duplicates from Sorted Array II - LeetCode
Can you solve this real interview question? Remove Duplicates from Sorted Array II - Given an integer array nums sorted in non-decreasing order, remove some duplicates in-place [https://en.wikipedia.org/wiki/In-place_algorithm] such that each unique elemen
leetcode.com
📌 - 처음 풀이
- for 문을 돌면서 dup로 현재 중복된 수가 몇개 인지 체크를 하면서 count에 해당하는 위치에 값을 넣어주는 방식
- 답은 맞지만 속도에서 굉장히 안 좋은 결과가 나옴
🔥 - Java 코드
class Solution {
public int removeDuplicates(int[] nums) {
int count =1;
int dup =0;
for(int i=1;i<nums.length;i++){
if(nums[i-1] != nums[i]){
nums[count++] = nums[i];
dup =0;
}
else{
if(dup == 0){
nums[count++] = nums[i];
dup++;
}
}
}
return count;
}
}
📌- 개선된 풀이 - 개선했다기엔 애매하지만
- else 문 안에 if문을 사용한 것이 성능적인 부분에서 조금 더 안 좋았고, 한번에 하게 되니까 메모리가 0.1MB 늘어나긴 했지만 성능 부분에서 개선된 것으로 보임
🔥 - Java 코드
class Solution {
public int removeDuplicates(int[] nums) {
int count =1;
int dup =0;
for(int i=1;i<nums.length;i++){
if(nums[i-1] != nums[i]){
nums[count++] = nums[i];
dup =0;
}
else if(dup == 0){
nums[count++] = nums[i];
dup++;
}
}
return count;
}
}