class Solution {
public:
    int partitionArray(vector<int> &nums, int k) {
        // write your code here


        if (nums.size() == 0) {
            return 0;
        }
        int left = 0;
        int right = nums.size() - 1;

        while (left < right) {
            while (left < right && nums[left] < k) {
                left++;
            }
            while (left < right && nums[right] >= k) {
                right--;
            }
            if (left < right) {
                int tmp = nums[left];
                nums[left] = nums[right];
                nums[right] = tmp;
                left++;
                right--;
            }
        }

        if (nums[left] < k) {
            return left + 1;
        }

        return left;
    }
};

results matching ""

    No results matching ""