方法很笨,使用两个栈
import java.util.Stack;
public class Solution {
public void reOrderArray(int [] array) {
if (array == null)
return;
int n = array.length;
Stack<Integer> stack1 = new Stack<>();
Stack<Integer> stack2 = new Stack<>();
for (int i = n - 1; i >= 0; i--){
if (array[i] % 2 == 0)
stack2.add(array[i]);
else
stack1.add(array[i]);
}
for (int i = 0; i < n; i++){
if (!stack1.isEmpty())
array[i] = stack1.pop();
else
array[i] = stack2.pop();
}
}
}
京公网安备 11010502036488号