【Leetcode】922. 按奇偶排序陣列Ⅱ
阿新 • • 發佈:2018-12-15
題目描述:
給定一個非負整數陣列 A
, A 中一半整數是奇數,一半整數是偶數。
對陣列進行排序,以便當 A[i]
為奇數時,i
也是奇數;當 A[i]
為偶數時, i
也是偶數。
你可以返回任何滿足上述條件的陣列作為答案。
示例:
輸入:[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
解題思路:
本題思路很明確,把奇數和偶數分別找出來存入不同陣列,然後按題目要求的一個奇數一個偶數的方式存入輸出陣列即可。
AC程式碼:
class Solution { public: vector<int> sortArrayByParityII(vector<int>& A) { vector<int> Odd; vector<int> Even; vector<int> Ret(A); //區分奇偶數 for(int i=0;i<A.size();i++) { if(A[i]%2==0) { Even.push_back(A[i]); } else { Odd.push_back(A[i]); } } //以一奇一偶的方式存入輸出陣列 for(int i=0;i<Ret.size();i++) { if(i%2==0) { Ret[i]=Even[i/2]; } else { Ret[i]=Odd[i/2]; } } return Ret; } };