class Solution {
public void duplicateZeros(int[] arr) {
for (int i=0; i<arr.length-1; i++) {
if (arr[i] == 0) {
for (int j=arr.length-1;j>i;j--) {
arr[j] = arr[j+1];
}
if (i!=arr.length) {
arr[i+1] = arr[i];
}
}
}
}
}
Asked
Active
Viewed 72 times
-1

Mark Rotteveel
- 100,966
- 191
- 140
- 197

Abhishek Khaiwale
- 235
- 2
- 8
2 Answers
0
You're missing a -1
here :
if (i!=arr.length) {
arr[i+1] = arr[i];
}
If i == arr.length - 1
then arr[i + 1]
is out of bound.
Try with :
if (i != arr.length - 1) {
arr[i+1] = arr[i];
}

Tom
- 4,972
- 3
- 10
- 28