Sort Colors
Total Accepted: 101116 Total Submissions: 289438 Difficulty: Medium
Given an array with n objects colored red, white or blue, sort them so, objects of the same color is Adjacen T
With the colors of the order red, white and blue.
Here, we'll use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.
Note:
You is not a suppose to use the library's sort function for this problem.
Click to show follow up.
Follow up:
A rather straight forward solution is a two-pass algorithm using counting sort.
First, iterate the array counting number of 0 ' s, 1 ' s, and 2 ' s, then overwrite array with total number of 0 ' s, then 1 ' s and Followed by 2 ' s.
Could you come up with a one-pass algorithm using only constant space?
Subscribe to see which companies asked this question
Hide TagsArray of Pointers SortHide Similar Problems(m) sort List (m) Wiggle sort (m) Wiggle sort II
C + + code:
Class Solution {public: void Sortcolors (vector<int>& nums) { int r=0, w=0, b=0;//Label the end of diff Erent colors; for (int num:nums) { if (num==0) { nums[b++]=2; Nums[w++]=1; nums[r++]=0; } else if (num==1) { nums[b++]=2; nums[w++]=1; } else if (num==2) b++;}} ;
Leetcode:sort Colors