leetcode 75.Sort Colors
在一堆的0-2之间的数组中进行排序使得按照0,1,2的顺序走,其中题目中明确指出了需要在in-place的条件下的排序的,因此考虑在排序中利用swap来实现in-place的排序条件的。那么在这里就需要两个指针red和blue的,然后当为红的情况下的话就交换对应的指针下标并进行移动的,当为蓝色的话也是交换指针下标的同时还需要对当前的进行验证的。
class Solution { public: void sortColors(vector<int>& nums) { int red=0,blue=nums.size()-1; for(int i=0;i<=blue;i++){ if(nums[i]==0){ swap(nums[i],nums[red++]); }else if(nums[i]==2){ swap(nums[i--],nums[blue--]); } } } };
posted on 2018-09-11 21:18 昔风不止,唯有努力生存 阅读(66) 评论(0) 编辑 收藏 举报