这次击败了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!