# # 依然是判断重叠区间 | LeetCode:435. # # 给定一个区间的集合intervals ,其中intervals[i] = [starti, endi] 。 # 返回需要移除区间的最小数量,使剩余区间互不重叠 。 # # # # 示例1: # 输入: intervals = [[1, 2], [2, 3], [3, 4], [1, 3]] # 输出: 1 # 解释: 移除[1, 3]后,剩下的区间没有重叠。 # # # 示例2: # 输入: intervals = [[1, 2], [1, 2], [1, 2]] # 输出: 2 # 解释: 你需要移除两个[1, 2]来使剩下的区间没有重叠。 # # 示例3: # 输入: intervals = [[1, 2], [2, 3]] # 输出: 0 # 解释: 你不需要移除任何区间,因为它们已经是无重叠的了。 intervals = [[1,2],[1,2],[1,2]] def get_nums(intervals): count = 0 if len(intervals) <= 0: return len(intervals) intervals.sort(key=lambda x:(x[0], x[1])) print(intervals) # end = intervals[0][1] # for i in range(1, len(intervals)): # if intervals[i][0] < end: # count += 1 # end = min(end, intervals[i][1]) # else: # end = intervals[i][1] # return count # print(get_nums(intervals)) count = 0 if len(intervals) <= 0: return len(intervals) intervals.sort(key=lambda x: (x[0], x[1])) # print(intervals) for i in range(1, len(intervals)): if intervals[i][0] >= intervals[i - 1][1]: continue else: intervals[i][1] = min(intervals[i - 1][1], intervals[i][1]) count += 1 return count print(get_nums(intervals))
13.贪心算法-无重叠区间
最新推荐文章于 2024-07-23 22:06:37 发布