「每日LeetCode」2021年1月9日

本文最后更新于:2023年3月19日 晚上

Lt905. 按奇偶排序数组

905. 按奇偶排序数组

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
 示例:

1
2
3
输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1][2,4,1,3][4,2,1,3] 也会被接受。

提示:

  1. 1 <= A.length <= 5000
  2. 0 <= A[i] <= 5000

思路

双指针,分别指向左右,如果左指针指向的是奇数,交换左右指针的数,右指针向左移动。当为偶数时,左指针向左移动。直到两个指针相遇停止。

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* @param {number[]} A
* @return {number[]}
*/
var sortArrayByParity = function (A) {
let l = 0,
r = A.length - 1;
while (l < r) {
if (A[l] % 2 !== 0) {
[A[l], A[r--]] = [A[r], A[l]];
} else l++;
}
return A;
};