75. Sort Colors

Loading Question ...

Given an array with n objects colored red, white or blue, sort them 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.

Note:
You are not 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 an one-pass algorithm using only constant space?


Seen this question in a real interview before?  
Yes
No
When did you encounter this question?  
last week
last month
last 3 month
last 6 month
more than 6 months
other
Which stage?  
Online Assessment
Phone Interview
On Campus Interview
Onsite Interview
Don't know
Which company?  
Adobe
Aetion
Airbnb
Alibaba
Amazon
Apple
Baidu
Bloomberg
Cloudera
Coursera
Cryptic Studios
Dropbox
eBay
Epic Systems
Expedia
Facebook
Fallible
Games
Gilt Groupe
GoDaddy
Goo
Google
Hedvig
Helix
Houzz
Hulu
Indeed
Intuit
IXL
LinkedIn
LiveRamp
Lyft
MAQ Software
Mathworks
Microsoft
NetEase
Netsuite
Palantir
Palantir Technologies
Pinterest
Pocket Gems
Poynt
Pure
Pure Storage
Rackspace
Radius
Riot
Riot Games
Samsung
Snapchat
Square
Storage
Tencent
TinyCo
Twitter
Two Sigma
Uber
Valve
WAP
Works Applications
Yahoo
Yahoo!
Yelp
Zappos
Zenefits