class Solution {
public void duplicateZeros(int[] arr) {
int zeroCnt = 0;
int len = arr.length;
for (int i = 0; i < arr.length; i++) {
if(arr[i] == 0) {
zeroCnt++;
}
}
for(int i = len-1 ; i >= 0; i--) {
int j = i + zeroCnt;
if(arr[i] == 0) {
if(j < len) {
arr[j] = 0;
}
j--;
zeroCnt--;
}
if(j < len) {
arr[j] = arr[i];
}
}
}
}
Two Pointer를 사용하여 해결할 수 있음 (i에 있는 값을 j로 복사)
새로운 배열 없이 arr배열에서 만 해결해야함
앞에서부터 하면은 데이터가 유실되서 불가능
'JAVA > leetcode' 카테고리의 다른 글
[LeetCode] Array - Remove Element !! (0) | 2021.08.05 |
---|---|
[LeetCode] Array - Merge Sorted Array (0) | 2021.08.05 |
[LeetCode] Array - Squares of a Sorted Array (0) | 2021.08.05 |
[LeetCode] Array - Find Numbers with Even Number of Digits (0) | 2021.08.04 |
[LeetCode] Array - Max Consecutive Ones (0) | 2021.08.04 |