排数问题
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保 持非零元素的相对顺序。
示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0]
public class paishu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums = {0, 1, 0, 3, 12}; //创建数组
int[] later = new int[nums.length]; //创建排序后的数组
int index = 0; //定义一个位置变量
for(int i = 0; i < later.length; i++) { //将创建排序后的数组清0
later[i] = 0;
}
for(int i = 0; i < nums.length; i++) {
if(nums[i] != 0) {
later[index++] = nums[i]; //将原数组内不为0的数按原位置存入新建的数组内
// TODO Auto-generated method stub
int[] nums = {0, 1, 0, 3, 12}; //创建数组
int[] later = new int[nums.length]; //创建排序后的数组
int index = 0; //定义一个位置变量
for(int i = 0; i < later.length; i++) { //将创建排序后的数组清0
later[i] = 0;
}
for(int i = 0; i < nums.length; i++) {
if(nums[i] != 0) {
later[index++] = nums[i]; //将原数组内不为0的数按原位置存入新建的数组内
}
}
System.out.println("移动前的数组为:"); //遍历打印移动前的数组
for(int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
} System.out.println();
System.out.println("移动后的数组为:"); //打印移动后的数组
for(int i = 0; i < later.length; i++) {
System.out.print(later[i] + " ");
} System.out.println();
}
}
System.out.println("移动前的数组为:"); //遍历打印移动前的数组
for(int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
} System.out.println();
System.out.println("移动后的数组为:"); //打印移动后的数组
for(int i = 0; i < later.length; i++) {
System.out.print(later[i] + " ");
} System.out.println();
}
}

浙公网安备 33010602011771号