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

牧场奶牛集合区域

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

考察知识点:数组、双指针

题目分析:

从左到右遍历一遍即可。使用left指针指向序列的起始位置,right指针指向序列的终止位置。如果右边能扩大一位,就扩大一位。不能扩大时,就记录结果,left指针可以直接指向该序列下一位作为开始;当right遍历完n个数就能得到答案。

所用编程语言:C++

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
        int left = 0, right = 0;
        vector<vector<int>> res;
        while (right < n) {
            vector<int> up;
            while (right < n - 1 && groups[right] + 1 == groups[right + 1]) {
                right++;
            }
            up.push_back(groups[left]);
            up.push_back(groups[right]);
            right++;
            left = right;
            res.push_back(up);
        }
        return res;
    }
};

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务