整型数组,奇数放在前面,偶数放在后面,不必按顺序
来源:2021年1月-爱奇艺面试真题
思路:前后两个游标,针对不同情况不同处理
import java.util.Arrays;
public class SelectOddAndEven {
public static void main(String[] args) {
int[] arr = {1, 3, 9, 4, 5, 6, 7, 8};
int end = arr.length - 1;
for (int start = 0; start < end;) {
int first = arr[start];
int last = arr[end];
//前偶后奇,交换位置
if (first % 2 == 0 && last % 2 != 0) {
arr[start] = last;
arr[end] = first;
start++; //前索引后移动
end--; //后索引前移
}
//前偶后偶
else if (first % 2 == 0 && last % 2 == 0) {
end--;
}
//前积后偶
else if (first % 2 != 0 && last % 2 == 0) {
start++;
end--;
}
//前积后积
else {
start++;
}
}
System.out.println(Arrays.toString(arr));
}
}