Sort Colors - Array - Medium - LeetCode
💻 coding

Sort Colors - Array - Medium - LeetCode

1 min read 191 words
1 min read
ShareWhatsAppPost on X
  • 1The problem requires sorting an array of integers representing colors red, white, and blue in a specific order.
  • 2A one-pass algorithm with O(1) space complexity can be implemented to sort the colors efficiently.
  • 3The provided solution uses two pointers to swap elements in place, achieving a time complexity of O(n).

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The problem requires sorting an array of integers representing colors red, white, and blue in a specific order."

Sort Colors - Array - Medium - LeetCode

Given an array nums with n objects colored red, white, or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white, and blue.

Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.

Follow up:

Could you solve this problem without using the library's sort function? Could you come up with a one-pass algorithm using only O(1) constant space?

Example 1:

Input: nums = [2,0,2,1,1,0] Output: [0,0,1,1,2,2] Example 2:

Input: nums = [2,0,1] Output: [0,1,2] Example 3:

Input: nums = [0] Output: [0] Example 4:

Input: nums = [1] Output: [1]

Constraints:

n == nums.length 1 <= n <= 300 nums[i] is 0, 1, or 2.

public class Solution {
 public void SortColors(int[] nums) {
 int left = 0;
 int right = nums.Length-1;
 for(int i=0;i<=right;i++){
 
 while(nums[i]==2 && i<right){
 swap(ref nums[i], ref nums[right]);
 right--;
 }
 
 while(nums[i]==0 && i>left){
 swap(ref nums[i], ref nums[left]);
 left++;
 } 
 }
 }
 
 private void swap(ref int a, ref int b){
 int temp = a;
 a = b;
 b = temp;
 }
}

Time Complexity: O(n)

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 31 October 2020 · 1 min read · 191 words

Part of AskGif Blog · coding

You might also like