本文主要是介绍力扣题解-905. 按奇偶排序数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:905. 按奇偶排序数组
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
示例:
输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
提示:
1 <= A.length <= 5000
0 <= A[i] <= 5000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-array-by-parity
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
代码
class Solution {
public:vector<int> sortArrayByParity(vector<int>& A) {vector<int> ans;int n = A.size();for (int i = 0; i < n; i++) {if (A[i] % 2 == 0) {ans.push_back(A[i]);A[i] = -A[i];}}for (int i = 0; i < n; i ++) {if (A[i] > 0) {ans.push_back(A[i]);} else {A[i] = -A[i];}}return ans;}
};
代码
class Solution {
public:vector<int> sortArrayByParity(vector<int>& A) {int n = A.size();vector<int> ans(n);int even = 0;int odd = n - 1;for (int i = 0; i < n; i++) {if (A[i] % 2 == 0) {ans[even++] = A[i];} else {ans[odd--] = A[i];}}return ans;}
};
代码
class Solution {
public:vector<int> sortArrayByParity(vector<int>& A) {int n = A.size();int i = 0;int j = n - 1;while (i < j) {if (A[i] % 2 != 0) {swap(A[i], A[j--]);} else {i++;}}return A;}
};
这篇关于力扣题解-905. 按奇偶排序数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!