Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. import pdb
  2. import heapq as h
  3. import sys
  4. # HEAP
  5. # Insert O(log n)
  6. # Delete O(log n)
  7. # Search O(n)
  8. # Building a Heap O(n)
  9.  
  10. def getMinGates(landingTimes, takeOffTimes, maxWaitTime, initialPlanes):
  11. intervals = []
  12.  
  13. for x in range(0,max(len(landingTimes), len(takeOffTimes))):
  14. if x >= len(landingTimes):
  15. intervals.append([0, takeOffTimes[x]])
  16.  
  17. if x >= len(takeOffTimes):
  18. intervals.append([maxWaitTime + landingTimes[x], sys.maxint])
  19.  
  20. intervals.append([maxWaitTime + landingTimes[x], takeOffTimes[x]])
  21.  
  22.  
  23. return meetingRooms2(intervals)
  24.  
  25.  
  26. def meetingRooms2(intervals=[[0,0]]):
  27. if (intervals == None or len(intervals) == 0):
  28. return 0
  29. # start 0, end 1
  30. intervals.sort(key=lambda list: list[0])
  31. minHeap = []
  32. h.heappush(minHeap, (intervals[0][1]))
  33.  
  34. for i in range(1, len(intervals)):
  35. curr = intervals[i]
  36. earliest_end = h.heappop(minHeap)
  37.  
  38. if (curr[0] >= earliest_end):
  39. earliest_end = curr[1]
  40. else:
  41. h.heappush(minHeap, curr[1])
  42.  
  43. h.heappush(minHeap, earliest_end)
  44.  
  45.  
  46. return len(minHeap)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement