905. 按奇偶排序数组

905. 按奇偶排序数组

一、题目描述

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

你可以返回满足此条件的任何数组作为答案。

二、解题思路

利用左右指针,左指针放偶数,右指针放奇数。

  • 左指针从 0 ~ n
  • 右指针从 n ~ 0

三、复杂度分析

  • 时间 O(n)
  • 空间 O(n)

三、提交代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* 奇偶数排序
* @param nums 数组
* @return 排序后的数组
*/
private int[] sortArrayByParity(int[] nums) {
int[] n = new int[nums.length];
int lp = 0, rp = n.length - 1;
int k = 0;
while (k < n.length) {
if (nums[k] % 2 == 0) {
n[lp++] = nums[k++];
} else {
n[rp--] = nums[k++];
}
}
return n;
}
作者

jiaduo

发布于

2022-09-18

更新于

2023-04-02

许可协议