今天在这个博客里看到了一道这样的题:
原题:
一个数组,里边存放三种球颜色值:红球为 'R',绿球为 'G ',蓝球为 'B ',
编程对该数组排序,使该数组最后的颜色排列如下:前边元素全部为 'R ',中间元素全部为 'G ',后边为 'B '
要求: 尽可能用swap,不允许分配连续的辅助空间。
举例:
数组输入为:RGGBBRRGBRR
输出 :RRRRRGGGBBB
好久没写代码了,所以有一种莫名的冲动自己也写一个.
以下是我的解法.时间复杂度为O(n)