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

牧场奶牛集合区域

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

  • 题目考察的知识点 : 数组遍历,贪心算法
  • 题目解答方法的文字分析:
  1. 可以从左往右遍历整个 groups 数组,并使用两个指针 left 和 right 来表示目前已经覆盖的区间范围。初始时,left 和 right 都指向数组的第一个元素。
  2. 在遍历的过程中,对于当前遍历到的元素 num:如果 num 等于 right+1,则将 right 的值加 1;
  3. 否则,将当前的区间范围 [left, right] 加入结果列表中,并将 left 和 right 均更新为 num。
  4. 遍历完整个 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题的解法思路

全部评论

相关推荐

10-15 20:01
已编辑
上海大学 Java
钉钉什么垃圾公司,约面鸽人
Syca_:途虎养车给我定了我这边早上六点的笔试,睡了四个小时起来难受的要命,告诉我面试时间是两天后的凌晨四点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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