Sort Colors 颜色分类
Description
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.
We will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.
public class Solution {
/**
* @param nums: A list of integer which is 0, 1 or 2
* @return: nothing
*/
public void sortColors(int[] nums) {
// write your code here
if(nums == null || nums.length <= 1){
return ;
}
int left = 0 , right = nums.length-1 ;
int i = 0 ;
while(i <= right){
if(nums[i] == 0){
int temp = nums[i] ;
nums[i] = nums[left] ;
nums[left] = temp ;
left++ ;
i++ ;
}else if(nums[i] == 1){
i++ ;
}else{
int curt = nums[i] ;
nums[i] = nums[right] ;
nums[right] = curt ;
right-- ;
}
}
}
}
这篇博客介绍了一个Java方法,用于对包含红色、白色和蓝色元素的数组进行排序,使得相同颜色的元素相邻,并按红-白-蓝的顺序排列。解决方案通过双指针技术实现,左侧指针指向已排序的红色元素末尾,右侧指针指向数组末尾,中间指针遍历数组,分别处理不同颜色的元素。
416

被折叠的 条评论
为什么被折叠?



