程序通过合并Python中的目标间隔来查找间隔

假设我们有一个非重叠间隔的列表。这些是根据结束时间排序的。我们有另一个区间目标,请在合并目标后找到最终区间,以使区间仍然不重叠和排序。

因此,如果输入像是时间间隔= [[1,15],[25,35],[75,90]],target = [10,30],那么输出将是[[1,35],[ 75、90]]合并为前两个间隔[1、15]和[25、35]。

范例(Python)

让我们看下面的实现以更好地理解-

class Solution:
   def solve(self, iv, target):
      iv.append(target)      iv.sort(key=lambda x: x[0])
      res = [iv[0]]
      i = 1
      while i < len(iv):
         if iv[i][0] <= res[-1][1]:
            res[-1][1] = max(res[-1][1], iv[i][1])
         else:
            res.append(iv[i])
         i += 1
      return res
ob = Solution()intervals = [
   [1, 15],
   [25, 35],
   [75, 90]
]
target = [10, 30]
print(ob.solve(intervals, target))

输入值

[[1, 15],[25, 35],[75, 90]], [10, 30]
输出结果
[[1, 35], [75, 90]]

猜你喜欢