题目地址:
https://leetcode.com/problems/sort-array-by-parity-ii/
给定一个数组 A A A,要求将其重排,使得 A [ i ] A[i] A[i]的奇偶性和 i i i一样。题目保证答案存在。
两轮遍历,第一轮存一下偶数,第二轮存一下奇数。代码如下:
public class Solution {
public int[] sortArrayByParityII(int[] A) {
int[] res = new int[A.length];
for (int i = 0, j = 0; i < A.length; i++) {
if (A[i] % 2 == 0) {
res[j] = A[i];
j += 2;
}
}
for (int i = 0, j = 1; i < A.length; i++) {
if (A[i] % 2 != 0) {
res[j] = A[i];
j += 2;
}
}
return res;
}
}
时间复杂度 O ( n ) O(n) O(n),空间 O ( 1 ) O(1) O(1)。