20.调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序。

使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。

数据范围:

  • 数组长度 [0,100]。
  • 数组内元素取值范围 [0,100]。

样例:

输入:[1,2,3,4,5]
输出: [1,3,5,2,4]

代码:

class Solution {
    public void reOrderArray(int[] array) {
        //初始化双指针
        //l从数组头部开始,寻找偶数
        //r从数组尾部开始,寻找奇数
        int l = 0,r = array.length-1;
        //当左指针小于右指针时循环
        while(l<r){
            //从左往右找到第一个偶数
            while(l<array.length&&array[l]%2!=0)l++;
            //从右往左找到第一个奇数
            while(r>=0&&array[r]%2==0)r--;
            //如果左指针在右指针左侧,交换这两个元素
            if(l<r){
                int temp = array[l];
                array[l] = array[r];
                array[r] = temp;
            }
        }
    }
}
posted @ 2025-05-15 09:37  回忆、少年  阅读(5)  评论(0)    收藏  举报