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

问题描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
* @Description: 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
* @Author: libk
* @Github: https://github.com/libk
*/
/**
* @param {number[]} nums
* @return {number[]}
*/
const exchange = function (nums) {
let start = 0
let end = nums.length - 1

while (start < end) {
while (start < end && (nums[start] & 1) === 1) {
start++
}
while (start < end && (nums[end] & 1) === 0) {
end--
}
let temp = nums[start]
nums[start] = nums[end]
nums[end] = temp
}
return nums
}