1、前言
题目描述2、思路
利用快速排序的 partition 过程,因为 partition 过程是可以将一个数组划分成大于区,小于区,等于区的,然后细节就是比较的基准就是1
3、代码
class Solution {
public void sortColors(int[] nums) {
int less = -1, more = nums.length, L = 0;
while(L < more){
if(nums[L] < 1){
swap(nums, ++less, L++);
}else if(nums[L] > 1){
swap(nums, --more, L);
}else{
L++;
}
}
}
private void swap(int[] array, int L, int R){
int temp = array[L];
array[L] = array[R];
array[R] = temp;
}
}
网友评论