[LeetCode] 905、按奇偶排序数组

题目描述

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1][2,4,1,3][4,2,1,3] 也会被接受。

解题思路

简单题,用双指针,借鉴partition函数的思想来实现。

参考代码

class Solution {
public:
    vector<int> sortArrayByParity(vector<int>& nums) {
        int length = nums.size();
        if(length <= 1)
            return nums;
        
        int left = 0, right = length - 1;
        while(left < right){
            while(left < right && nums[right] % 2 == 1)
                right--;
            while(left < right && nums[left] % 2 == 0)
                left++;
            if(left < right)
                swap(nums[left], nums[right]);
        }
        
        return nums;
    }
};
发布了390 篇原创文章 · 获赞 576 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/ft_sunshine/article/details/103945416