给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
要求:空间复杂度 O(1),时间复杂度为 O( n)。
import java.util.ArrayList;
import java.util.List;
public class ExchangeOddEven {
public static void solution(List<Integer> list){
if(null == list){
return;
}
int p=0; int q=list.size()-1;
while(p<q){
while(list.get(p)%2==1){
++p;
}
while(list.get(q)%2==0){
--q;
}
int tmp=list.get(p);
list.set(p, list.get(q));
list.set(q, tmp);
}
}
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(4);
list.add(7);
list.add(19);
solution(list);
System.out.println(list);
}
}