Leetcode 075颜色分类(头条二面算法题)(荷兰国旗问题)

地址

https://leetcode-cn.com/problems/sort-colors/

描述

在这里插入图片描述
在这里插入图片描述

思想

三指针:维护
[0,j-1]都是0,[j,i-1]都是1,[k+1,n-1]都是2.
在这里插入图片描述
a[i]的三种情况:
在这里插入图片描述

代码

class Solution {
    
    
public:
    void sortColors(vector<int>& nums) {
    
    
        for(int i=0,j=0,k=nums.size()-1;i<=k;){
    
    
            if(nums[i]==0) {
    
    
                swap(nums[i],nums[j]);
                i++;j++;
            }
            else if(nums[i]==2){
    
    
                swap(nums[i],nums[k]);
                k--;
            }
            else i++;
        }
    }
};

猜你喜欢

转载自blog.csdn.net/qq_52934831/article/details/121733510