题目:
package MoveZeros;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
//暴中暴法:用队列解题
public class MoveZeros {
public static void moveZeros(int[] nums){
Queue<Integer> que1 = new LinkedList<>();//放非0数
Queue<Integer> que2 = new LinkedList<>();//放0
for(int i=0; i<nums.length;i++) {
if (nums[i] != 0) {
que1.offer(nums[i]);//把非0数传给队列1
} else {
que2.offer(nums[i]);//也就是0,传给队列2
}
}
int size2= que2.size();
for(int j=0; j<size2;j++) {
que1.offer(que2.poll());//两列合并
}
int size1 = que1.size();
for(int k=0; k<size1;k++){
nums[k] = que1.poll();//回倒给数组
}
System.out.println(Arrays.toString(nums));
}
public static void main(String[] args) {
int[] test = {0,1,0,3,12};
moveZeros(test);
}
}
package MoveZeros;
import java.util.Arrays;
//暴力法:两两交换
public class MoveZeros {
public static void moveZeros(int[] nums) {
for(int j = 0;j< nums.length-1;j++){
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i] == 0) {
int temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
System.out.println(Arrays.toString(nums));
}
public static void main(String[] args) {
int[] test = {0,1,0,3,12};
moveZeros(test);
}
}