题解 | #牛群的协作#
牛群的协作
https://www.nowcoder.com/practice/c065b35c5cff41429edbd6484096d708
#from types import coroutine # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param cow_ranges int整型二维数组 # @return int整型 # class Solution: def minParallelAttacks(self , cow_ranges: List[List[int]]) -> int: # write code here if not cow_ranges: return 0 if len(cow_ranges) == 1: return 1 cow_ranges = list(sorted(cow_ranges)) attacks = 1 cow = cow_ranges[0] for cow_range in cow_ranges: if cow_range[0] <= cow[1]: #这里是关键,攻击区间不能直接合并出最大区间,因为这样一个区间里可能会包含不相邻的子区间 #所以区间划分时应该选择较小的区间末端作为当前攻击区间的末端 cow[1] = min(cow[1], cow_range[1]) else: attacks += 1 cow = cow_range return attacks