LeetCode 905. Sort Array By Parity

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. 1 <= A.length <= 5000
  2. 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;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章