我是靠谱客的博主 眼睛大野狼,这篇文章主要介绍LeetCode 922. 按奇偶排序数组 II(C、C++、python),现在分享给大家,希望可以做个参考。


给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。

对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。

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

 

示例:

复制代码
1
2
3
4
输入:[4,2,5,7] 输出:[4,5,2,7] 解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。

 

提示:

2 <= A.length <= 20000

A.length % 2 == 0

0 <= A[i] <= 1000

C

复制代码
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
29
30
31
32
33
34
35
36
37
38
39
/** * Return an array of size *returnSize. * Note: The returned array must be malloced, assume caller calls free(). */ int* sortArrayByParityII(int* A, int ASize, int* returnSize) { int n=ASize; int* M=(int*)malloc(sizeof(int)*n/2); int* N=(int*)malloc(sizeof(int)*n/2); int* res=(int*)malloc(sizeof(int)*n); int k=0; int r=0; for(int i=0;i<n;i++) { if(A[i]%2==1) { M[k]=A[i]; k++; } else { N[r]=A[i]; r++; } } for(int i=0;i<n;i++) { if(i%2==0) { res[i]=N[i/2]; } else { res[i]=M[i/2]; } } *returnSize=n; return res; }

C++

复制代码
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
29
30
31
32
33
class Solution { public: vector<int> sortArrayByParityII(vector<int>& A) { int n=A.size(); vector<int> M; vector<int> N; for(int i=0;i<n;i++) { if(A[i]%2==1) { M.push_back(A[i]); } else { N.push_back(A[i]); } } vector<int> res; for(int i=0;i<n;i++) { if(i%2==0) { res.push_back(N[i/2]); } else { res.push_back(M[i/2]); } } return res; } };

python

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution: def sortArrayByParityII(self, A): """ :type A: List[int] :rtype: List[int] """ n=len(A) M=[] N=[] for i in range(n): if A[i]%2==1: M.append(A[i]) else: N.append(A[i]) res=[] for i in range(n): if i%2==0: res.append(N[i//2]) else: res.append(M[i//2]) return res

 

最后

以上就是眼睛大野狼最近收集整理的关于LeetCode 922. 按奇偶排序数组 II(C、C++、python)的全部内容,更多相关LeetCode内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部