From b6f3a4f3252ae72e5649e7992a0bd4f39069baef Mon Sep 17 00:00:00 2001 From: Tahsin Tunan Date: Fri, 30 Dec 2022 21:40:44 +0600 Subject: [PATCH] Create 1834. Single-Threaded CPU Signed-off-by: Tahsin Tunan --- python/1834-Single-Threaded-CPU.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 python/1834-Single-Threaded-CPU.py diff --git a/python/1834-Single-Threaded-CPU.py b/python/1834-Single-Threaded-CPU.py new file mode 100644 index 000000000..1a0a25db9 --- /dev/null +++ b/python/1834-Single-Threaded-CPU.py @@ -0,0 +1,19 @@ +class Solution: + def getOrder(self, tasks: List[List[int]]) -> List[int]: + tasks = sorted([(t[0], t[1], i) for i, t in enumerate(tasks)]) + result, heap = [], [] + cur_task_index = 0 + cur_time = tasks[0][0] + + while len(result) < len(tasks): + while (cur_task_index < len(tasks)) and (tasks[cur_task_index][0] <= cur_time): + heapq.heappush(heap, (tasks[cur_task_index][1], tasks[cur_task_index][2])) + cur_task_index += 1 + if heap: + time_difference, original_index = heapq.heappop(heap) + cur_time += time_difference + result.append(original_index) + elif cur_task_index < len(tasks): + cur_time = tasks[cur_task_index][0] + + return result