题解 | #牧场奶牛集合区域#
牧场奶牛集合区域
https://www.nowcoder.com/practice/89218acf98234315af1cb3a223935318
- 题目考察的知识点 : 数组遍历,贪心算法
- 题目解答方法的文字分析:
- 可以从左往右遍历整个 groups 数组,并使用两个指针 left 和 right 来表示目前已经覆盖的区间范围。初始时,left 和 right 都指向数组的第一个元素。
- 在遍历的过程中,对于当前遍历到的元素 num:如果 num 等于 right+1,则将 right 的值加 1;
- 否则,将当前的区间范围 [left, right] 加入结果列表中,并将 left 和 right 均更新为 num。
- 遍历完整个 groups 数组后,仍需要将最后一个区间范围 [left, right] 加入结果列表中
- 本题解析所用的编程语言: Python
- 完整且正确的编程代码
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param groups int整型一维数组 # @param n int整型 # @return int整型二维数组 # class Solution: def findGatheringAreas(self, groups: List[int], n: int) -> List[List[int]]: res = [] left, right = -1, -1 for num in groups: if num == right + 1: right += 1 else: if left != -1: res.append([left, right]) left, right = num, num if left != -1: res.append([left, right]) return res
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路