@@ -0,0 +1,1198 @@
+public class MoveZeroes %7B%0D%0A%0D%0A    public static void main(String%5B%5D args) %7B%0D%0A        int%5B%5D nums = new int%5B%5D%7B0, 1, 0, 3, 12%7D;%0D%0A        new MoveZeroes().moveZeroes(nums);%0D%0A        for (int x : nums) %7B%0D%0A            System.out.print(x + %22 %22);%0D%0A        %7D%0D%0A    %7D%0D%0A%0D%0A    public void moveZeroes(int%5B%5D nums) %7B%0D%0A        if (nums != null && nums.length %3E 0) %7B%0D%0A            int length = nums.length;%0D%0A            int%5B%5D zeroArray = new int%5Blength + 1%5D;%0D%0A            int%5B%5D nonZeroArray = new int%5Blength + 1%5D;%0D%0A%0D%0A            int zeroIndex = 0;%0D%0A            int nonZeroIndex = 0;%0D%0A            for (int i = 0, j = length -1; i %3C j; i++, j--) %7B%0D%0A                if (nums%5Bi%5D == 0) %7B%0D%0A                    zeroArray%5BzeroIndex++%5D = i + 1;%0D%0A                %7D else %7B%0D%0A                    nonZeroArray%5BnonZeroIndex++%5D = i + 1;%0D%0A                %7D%0D%0A            %7D%0D%0A            for (int i = 0; i %3C zeroArray.length; i++) %7B%0D%0A                int zIndex = zeroArray%5Bi%5D;%0D%0A                int nzIndex = nonZeroArray%5Bi%5D;%0D%0A                if (zIndex %3E 0 && zIndex %3C nzIndex) %7B%0D%0A                    nums%5BzIndex - 1%5D = nums%5BnzIndex - 1%5D;%0D%0A                    nums%5BnzIndex - 1%5D = 0;%0D%0A                %7D%0D%0A            %7D%0D%0A        %7D%0D%0A    %7D%0D%0A%7D%0D%0A

Add MoveZeroes