83 颜色分类-三指针解决

问题描述:给定一个包含红色、白色、蓝色,一共n个元素的数组,原地对他们进行排序,使得相同并颜色的颜色相邻,并按照红色、白色、蓝色顺序排列,在此题中使用整数0、1、2分别表示红色、白色和蓝色。

三指针求解:本题要求所有的0放在左边,所有的3放在右边,所以可以定义一个start和end指针,指向0和3的位置,并用index进行遍历,如果index为0,则与start位置进行交换,如果index=3则域end位置进行交换,直到index位置为2,这时index前移。

public void swap(int[]nums,int start,int end)
{
int temp=nums[start];
nums[start]=nums[end];
nums[end]=tem0;
}|
public int[]change(int []nums)
{
int start=0;
int end=nums.length;
int index=1;
while(start

你可能感兴趣的:(JAVA刷题500道,数据结构,算法,java)