LeetCode 905 按奇偶排序数组[双指针] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 905 按奇偶排序数组[双指针] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。

解题思路:
典型的双指针题型,定义左右指针,从左往右和从右往左出发,分别寻找左边的奇数和右边的偶数并交换,直到找不到(left > right),代码如下:

class Solution 
public:
    vector<int> sortArrayByParity(vector<int>& nums) 
        int n = nums.size();
        int left = 0, right = n - 1;
        while(left < right) 
            // 左边找奇数
            while(nums[left] % 2 == 0 && left < right) 
                left ++;
            
            // 右边找偶数
            while(nums[right] % 2 != 0 && left < right) 
                right --;
            
            if(left >= right) break;
            int temp = nums[left];
            nums[left] = nums[right];
            nums[right] = temp;
        
        return nums;
    
;
创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于LeetCode 905 按奇偶排序数组[双指针] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode#905 - 按奇偶排序数组

Leetcode-905 按奇偶校验排序数组

LeetCode 417. 太平洋大西洋水流问题(多源bfs) / 905. 按奇偶排序数组 / 427. 建立四叉树(dfs+二维前缀和)

905. 按奇偶排序数组

c_cpp 905.按奇偶校验排序数组

905. 按奇偶排序数组