Skip to content

Latest commit

 

History

History
31 lines (24 loc) · 823 Bytes

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

File metadata and controls

31 lines (24 loc) · 823 Bytes

题目链接:

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

思路:

  • 定义双指针
  • 左指针找偶数,右指针找奇数
  • 交换左右指针的值
  • 循环寻找

代码:

JavaScript

const exchange = nums => {
    // 定义双指针
    let [left, right] = [0, nums.length - 1];
    while (left < right) {
        // 奇数,继续向右找,直到找到偶数
        while (left < right && nums[left] & 1) left++;
        // 偶数,继续向左找,直到找到奇数
        while (left < right && !(nums[right] & 1)) right--;
        // 交换奇偶数
        [nums[left], nums[right]] = [nums[right], nums[left]];
    }
    return nums;
};