Sort Colors Medium 0 attempts
LeetCode ↗

Sort Colors

Medium Two Pointer LeetCode

Given an array with values 0, 1, and 2, sort it in-place (Dutch National Flag problem variant).

Example: nums = [2,0,2,1,1,0] → [0,0,1,1,2,2]

Sample Input
Sample Output
Constraints
  • 1 <= N <= 10^3
  • 0 <= arr[i] <= 2
Topics

Three-Way Partitioning

function sortColors(nums) {
  let lo = 0, mid = 0, hi = nums.length - 1;
  while (mid <= hi) {
    if (nums[mid] === 0) { [nums[lo], nums[mid]] = [nums[mid], nums[lo]]; lo++; mid++; }
    else if (nums[mid] === 1) mid++;
    else { [nums[mid], nums[hi]] = [nums[hi], nums[mid]]; hi--; }
  }
}

Time: O(n) | Space: O(1)

Saved in this browser only. Private to you.

JavaScript