题解 | #牛的品种排序II#

牛的品种排序II

https://www.nowcoder.com/practice/43e49fbb98b4497ba46e185918188b1c

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param cows int整型vector
     * @return int整型vector
     */
    vector<int> sortCows(vector<int>& cows) {
        // write code here
        int low = 0;         
        int high = cows.size() - 1; 
        int i = 0;
        while (i <= high) {
            if (cows[i] == 0) {
                swap(cows[i], cows[low]);
                i++;
                low++;
            } else if (cows[i] == 2) {
                swap(cows[i], cows[high]);
                high--;
            } else {
                i++;
            }
        }
        return cows;
    }
};

荷兰国旗问题:三指针,原地调整。

一个指针指向0的右端点(可以理解为最终其左全0右全1和2),一个指针指向2的左端点(可以理解为最终其右全2左全0和1),一个指针进行遍历。

全部评论

相关推荐

09-14 20:51
四川大学 Java
慢热的鲸鱼在学习:985加粗就行了,第二个项目来不及准备也没事,省的写了问你你还不会。你只需准备面试八股和项目场景,剩下的交给985。即使面不过也没事,面试经验是最重要的,你现在不缺时间
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务