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

3 pointers algorithem

class Solution {
public:
    void sortColors(vector<int>& nums) {
        int n = nums.size();
        int s = 0, e = n-1;
        int mid = 0;
        while(mid >= s && mid <= e){
 
            if (nums[mid] == 0){
                swap(nums[mid],nums[s]);
                s++;
                mid++;
 
            } else if (nums[mid] == 2){
                swap(nums[mid],nums[e]);
                e--;
            } else {
                mid++;
            }
 
        }
    }
};