给定个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 * 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 * 示例 1: * 输入: nums = [0,1,0,3,12] * 输出: [1,3,12,0,0]
public class Demo28 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组元素个数");
int n = sc.nextInt();
int[] nums = new int[n];
System.out.println("请依次输入数组元素");
for (int i = 0; i < nums.length; i++) {
nums[i] = sc.nextInt();
}
int temp=0;
for (int i = 0; i < nums.length-1; i++) {
if(nums[i]==0&&temp< nums.length-1){
temp++;//以防陷入死循环
for (int j = i; j < nums.length-1; j++) {
nums[j]=nums[j+1];
}
nums[nums.length-1]=0;
i--;
}
}
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
}
}