2021.09.03 - 014.调整数组顺序使奇数位于偶数前面

文章目录

1. 题目

2021.09.03 - 014.调整数组顺序使奇数位于偶数前面

2. 思路

(1) 头尾指针法

  • 创建一个头指针,从前向后遍历,找到偶数时停下;创建一个尾指针,从后向前遍历,找到奇数时停下;交换两个位置上的值;循环执行,直到两个指针相遇时结束。

  • 注意:每次移动指针前,都要判断头尾指针是否已经相遇。

3. 代码

public class Test {
    public static void main(String[] args) {
        Solution solution = new Solution();
        int[] exchange = solution.exchange(new int[]{1, 3, 5});
        for (int i : exchange) {
            System.out.println(i);
        }
    }
}

class Solution {
    public int[] exchange(int[] nums) {
        int low = 0;
        int high = nums.length - 1;
        while (low < high) {
            while (low < high && (nums[low] & 1) == 1) {
                low++;
            }
            while (low < high && (nums[high] & 1) == 0) {
                high--;
            }
            if (low != high) {
                int temp = nums[low];
                nums[low] = nums[high];
                nums[high] = temp;
            }
        }
        return nums;
    }
}
上一篇:ICDAR 成绩 前5企业和高校


下一篇:C++——04数组指针字符串