【Leetcode】 905. Sort Arrays by Odd-Even

Given an integer array nums, move all the even integers at the beginning of the array followed by all the odd integers.

Return any array that satisfies this condition.

Example 1:

Input: nums = [3,1,2,4]
Output: [2,4,3,1]
Explanation: 
The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.

Example 2:

Input: nums = [0]
Output: [0]

Constraints:

1 <= nums.length <= 5000
0 <= nums[i] <= 5000

Thought

  • Simple question and easy to do!
  • First traverse once to find the output of even items
  • After traversing once, find the count item output

AC

/*
 * @lc app=leetcode.cn id=905 lang=cpp
 *
 * [905] 按奇偶排序数组
 */

// @lc code=start
class Solution {
    
    
public:
    vector<int> sortArrayByParity(vector<int>& nums) {
    
    
        vector<int> res;
        for(auto num : nums)
        {
    
    
            if(num % 2 == 0)
            {
    
    
                res.push_back(num);
            }
        }
        for(auto num : nums)
        {
    
    
            if(num % 2 == 1)
            {
    
    
                res.push_back(num);
            }
        }
        return res;
    }
};
// @lc code=end

AC
After reading the official problem solution, it was consistent with idea 1, so
I looked at the other two solutions:
traversal
tranform

Guess you like

Origin blog.csdn.net/qq_54053990/article/details/131056612