-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
  • 100,966
  • 191
  • 140
  • 197

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
  • 4,972
  • 3
  • 10
  • 28
0
arr[j] = arr[j+1]; // index is out of bound when j=arr.length-1
arbitrary_A
  • 333
  • 3
  • 9