这次击败了100%的C++编程者,题目比较简单,三路快速排(三指针)的解决方法。其实博主一开始还没有想到Follow Up中的计算-还原二次遍历法 :)。既然贴了eazy标签就不解释了,直接上代码。
class Solution {
public:
void sortColors(vector<int>& nums) {
int i = 0, j = 0, k = nums.size() - 1;
while(j <= k){
if(nums[j] > 1){
swap(nums[j], nums[k--]);
}else if(nums[j] < 1){
swap(nums[j++], nums[i++]);
}else{
j++;
}
}
}
};
OK,See You Next Chapter!