题目描述:
给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的
元素相邻,并按照红色、白色、蓝色顺序进行排序。此题中,我们使用整数0、1和2分别表示
红色、白色和蓝色。
示例 1:
Input:nums=[2,0,2,1,1,0]
Output:[0,0,1,1,2,2]
示例 2:
Input:nums=[2,0,1]
Output:[0,1,2]
示例 3:
Input:nums=[1]
Output:[1]
Go语言实现
package main
import "fmt"
func sortColors(nums []int){
i,left,right:=0,0,len(nums)-1
for i<right{
if nums[i]==1{
i++
}else if nums[i]==0{
nums[i],nums[left]=nums[left],nums[i]
left++
i++
}else{
nums[i],nums[right]=nums[right],nums[i]
right--
}
}
}
func main(){
fmt.Println("颜色进行分裂")
nums:=[]int{2,0,2,1,1,0}
sortColors(nums)
fmt.Println(nums)
}