/* 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 */
public class Test08
{
public static int[] moveZeroes(int[] nums)
{
int i = 0;
int j = nums.length - 1;
int t;
while (i < j) {
if (nums[j] == 0) {
j--;
continue;
}
t = nums[i];
nums[i] = nums[j];
nums[j] = t;
i++;
}
int m = 0;
int n = i-1;
while (m < n) {
t = nums[m];
nums[m] = nums[n];
nums[n] = t;
m++;
n--;
}
return nums;
}
public static void main(String[] args)
{
int[] test = {2,1};
int[] ints = moveZeroes(test);
for (int anInt : ints) {
System.out.print(anInt + ",");
}
}
}