「每日LeetCode」2022年4月28日

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

905.按奇偶排序数组

905.按奇偶排序数组

Category Difficulty Likes Dislikes
algorithms Easy (69.99%) 278 -

Tags
Companies
给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。
返回满足此条件的 任一数组 作为答案。

示例 1:
输入:nums = [3,1,2,4] 输出:[2,4,3,1] 解释:[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。
示例 2:
输入:nums = [0] 输出:[0]

提示:

  • 1 <= nums.length <= 5000
  • 0 <= nums[i] <= 5000

Discussion | Solution

思路

双指针按题意模拟即可

解答

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
28
/*
* @lc app=leetcode.cn id=905 lang=javascript
*
* [905] 按奇偶排序数组
*/

// @lc code=start
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortArrayByParity = function (nums) {
let left = 0,
right = nums.length - 1;
while (left < right) {
while (left < right && nums[left] % 2 === 0) {
left++;
}
while (left < right && nums[right] % 2 !== 0) {
right--;
}
[nums[left], nums[right]] = [nums[right], nums[left]];
left++;
right--;
}
return nums;
};
// @lc code=end