题解 | #牧场奶牛集合区域#

牧场奶牛集合区域

https://www.nowcoder.com/practice/89218acf98234315af1cb3a223935318

双指针问题:

基本思路:

1、移动游标,获得可以收集的边界条件!(边界与的条件 保证数据不越界访问)

2、按照目标构造结果变量

3、收集结果,并重新初始化,开始下一次查找

#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param groups int整型vector 
     * @param n int整型 
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > findGatheringAreas(vector<int>& groups, int n) {
        // write code here
        vector<vector<int>> res;
        int left = 0;
        int right = 0;
        while(left < n) {
            // 有界的连续 一直移动 边界到了right +  1
            while (right + 1 < n && groups[right] + 1 == groups[right + 1]) {
                right++; 
            }
            vector<int> group(2,0);
            if (left == right) {
                group[0] = groups[left];
                group[1] = groups[left];
            } else {
                group[0] = groups[left];
                group[1] = groups[right];
            }
            //vector<int> group(groups.begin() + left, groups.begin() + right + 1);
            res.push_back(group);
            left = right + 1;
            right = left;
        }
        return res;
    }
};

全部评论

相关推荐

不想投了,不想面了,不想找了感觉自己像个小丑
用微笑面对困难:不是你去大学生就业平台看看啊,boss很多就是冲kpi的
点赞 评论 收藏
分享
04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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