LeetCode/Algorithms
26. Remove Duplicates from Sorted Array
챠오위
2021. 10. 17. 20:02
배열로 해결함
class Solution {
public int removeDuplicates(int[] nums) {
int idx = 1;
for( int i=1; i<nums.length; i++ ) {
if( nums[i] == nums[idx-1] ) {
continue;
}
nums[idx] = nums[i];
idx++;
}
return idx;
}
}
index 값을 1로 지정하고 해당값을 기준으로 for문을 돌려 nums 값과 비교했다.
value 값이 같으면 for문을 계속 돌아가게 하고,
value 값이 같지 않으면 for문을 멈추고 해당 값을 멈춘 값에 대입한다.
index 값 또한 +1 씩 추가하여 다시 처음으로 돌아가 for문을 돌려 nums 값과 비교한다.
풀이는 다음과 같다.
0 0 1 1 1 2 2 3 3 4
int idx = 1
nums[1] == nums[0] 0 0
nums[2] == nums[0] 1 0 stop
nums[1] = nums[2]
0 1 1 1 1 2 2 3 3 4
int idx = 2
nums[3] == nums[1] 1 1
nums[4] == nums[1] 1 1
nums[5] == nums[1] 2 1 stop
nums[2] = nums[5]
0 1 2 1 1 2 2 3 3 4
int idx = 3
nums[6] == nums[2] 2 2
nums[7] == nums[2] 3 2 stop
nums[3] = nums[7]
0 1 2 3 1 2 2 3 3 4
int idx = 4
nums[8] == nums[3] 3 3
nums[9] == nums[3] 4 3 stop
nums[4] = nums[9]
0 1 2 3 4 2 2 3 3 4
int idx = 5;