LeetCode 905. Sort Array By Parity
阿新 • • 發佈:2018-12-22
905. Sort Array By Parity
Given an array A
of non-negative integers, return an array consisting of all the even elements of A
, followed by all the odd elements of A
.
You may return any answer array that satisfies this condition.
Example 1:
Input: [3,1,2,4] Output: [2,4,3,1] The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.
Note:
1 <= A.length <= 5000
0 <= A[i] <= 5000
題目描述:題意是要求給陣列排序,排序的原則是偶數在前,奇數在後。
題目分析:很簡單,我們直接給陣列分分類就好了,然後用一個新的陣列去存取值就行了。
python
程式碼:
class Solution(object): def sortArrayByParity(self, A): """ :type A: List[int] :rtype: List[int] """ odd_list = [] even_list = [] final_list = [] A_length = len(A) for i in range(A_length): if A[i] % 2 == 0: even_list.append(A[i]) else: odd_list.append(A[i]) final_list = even_list + odd_list return final_list
C++
程式碼:
class Solution { public: vector<int> sortArrayByParity(vector<int>& A) { vector<int> final_list(A.size()); int count_odd = 0; int count_even = 0; for(int i = 0; i < A.size(); i++){ if(A[i] % 2 == 0){ count_even++; } else{ count_odd++; } } vector<int> odd_list(count_odd); vector<int> even_list(count_even); int odd = 0; int even = 0; for(int i = 0; i < A.size(); i++){ if(A[i] % 2 == 0){ even_list[even++] = A[i]; } else{ odd_list[odd++] = A[i]; } } final_list = even_list; final_list.insert(final_list.end(),odd_list.begin(),odd_list.end()); return final_list; } };