-1
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];
                }
            }
        }
    }
}
Mark Rotteveel
  • 90,369
  • 161
  • 124
  • 175

2 Answers2

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
0
arr[j] = arr[j+1]; // index is out of bound when j=arr.length-1
arbitrary_A
  • 283
  • 1
  • 5