当前位置:   article > 正文

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

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;
    }
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/491524
推荐阅读
相关标签
  

闽ICP备14008679号