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 43 times
-1
Mark Rotteveel
- 90,369
- 161
- 124
- 175
Abhishek Khaiwale
- 15
- 4
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
- 3,385
- 3
- 6
- 22