/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void moveZeroes(int[] nums) {
// A "source" and "destination" pointer: you will read elements from the "source", write them to the "destination".
for (int src = 0, dst = 0; src < nums.length; ++src) {
if (nums[src] != 0) {
nums[dst++] = nums[src];
nums[src] = 0;
}
}
}
{
int[] input = {0,1,0,3,12};
moveZeroes(input);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtb3ZlWmVyb2VzKGludFtdIG51bXMpIHsKCQkvLyBBICJzb3VyY2UiIGFuZCAiZGVzdGluYXRpb24iIHBvaW50ZXI6IHlvdSB3aWxsIHJlYWQgZWxlbWVudHMgZnJvbSB0aGUgInNvdXJjZSIsIHdyaXRlIHRoZW0gdG8gdGhlICJkZXN0aW5hdGlvbiIuCgkJZm9yIChpbnQgc3JjID0gMCwgZHN0ID0gMDsgc3JjIDwgbnVtcy5sZW5ndGg7ICsrc3JjKSB7CgkJCWlmIChudW1zW3NyY10gIT0gMCkgewogICAgCQkJbnVtc1tkc3QrK10gPSBudW1zW3NyY107CiAgICAJCQludW1zW3NyY10gPSAwOwoJCQl9CgkJfQoJfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlpbnRbXSBpbnB1dCA9IHswLDEsMCwzLDEyfTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oQXJyYXlzLnRvU3RyaW5nKGlucHV0KSk7CgkJbW92ZVplcm9lcyhpbnB1dCk7CgkJU3lzdGVtLm91dC5wcmludGxuKEFycmF5cy50b1N0cmluZyhpbnB1dCkpOwoJfQp9
[0, 1, 0, 3, 12]
[1, 3, 12, 0, 0]