75. Sort Colors
题目:由0,1,2组成的数组,对其进行排序。没搞懂考啥
public class Solution {
public void sortColors(int[] nums) {
int count0 = 0, count1 = 0, count2 = 0;
for(int x : nums){
if(x == 0) count0++;
else if(x == 1) count1++;
else count2++;
}
for(int i = 0; i < nums.length; i++){
if(i < count0) nums[i] = 0;
else if(i < count0+count1) nums[i] = 1;
else nums[i] = 2;
}
return;
}
}
一次遍历的方法
public class Solution {
public void sortColors(int[] nums) {
int start = 0, end = nums.length-1;
for(int i = 0; i <= end; i++){
if(nums[i] == 0){
int temp = nums[i];
nums[i] = nums[start];
nums[start++] = temp;
}
else if(nums[i] == 2){
int temp = nums[i];
nums[i--] = nums[end];
nums[end--] = temp;
}
}
return;
}
}