JAVA/leetcode
[LeetCode] Array - Duplicate Zeros !!
JJunDol2
2021. 8. 5. 16:07
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배열에서 만 해결해야함
앞에서부터 하면은 데이터가 유실되서 불가능