整型数组,奇数放在前面,偶数放在后面,不必按顺序

整型数组,奇数放在前面,偶数放在后面,不必按顺序

来源: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));
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42080280/article/details/113174674