一、题目解析
给定一个数组将其元素按照0,1,,2三段式排序,并且在原地进行排序。
二、算法原理
解法:三指针
用cur遍历数组,left记录0的最左侧,right记录2的最右侧。
left初始值为-1,right的初始值为n,cur初始值为0.
通过示例来得出nums[i]的三中情况
省流版,循环条件为cur<right
nums[cur]==1,cur++
nums[cur] ==0,swap(nums[cur++],nums[++left])
nums[cur]==2,swap(nums[cur],nums[--right])
老规矩根据算法原理自己动手实现一下,链接:75. 颜色分类 - 力扣(LeetCode)
三、代码示例
看到最后,如果对您有所帮助还请留下一个免费的赞和收藏,我们下期再见!