Leetcode 1834. Single-Threaded CPU [Python]
使用heap。把task按照进队列时间,持续时间,和原始的index组成新的三元组然后排序,设置一个时间T,记录当前的时间,设置一个队列,就是已经入队列的cpu待处理的任务,当tasks里的任务的时间小于等于当前时间的时候,就把tasks里的任务压到cpu的队列中,同时队列弹出一个任务后,更新时间,也就是把当前时间+队列弹出的任务的处理时间,如果cpu队列里没有任务了,且当前时间小于tasks中的最前面一个任务的入队列时间的话,则直接更新时间到tasks中最前面一个任务的入队时间,这里的小细节是一定要确保队列中已经没有任务了,否则,如果队列中还有任务,时间就还需要更新,之后才能拿新的时间去对比tasks中的最靠前的待处理任务的入队时间。
最后确保cpu队列的任务全出处理完,也就是第二个最靠外的while循环。
class Solution:def getOrder(self, tasks: List[List[int]]) -> List[int]:newtask = []for index, task in enumerate(tasks):entime, durtime = task[0], task[1]newtask.append((entime, durtime, index))newtask.sort(key = lambda x:x[0])time = newtask[0][0]que = []res = []while newtask:if not que and time < newtask[0][0]:time = newtask[0][0]while newtask and time >= newtask[0][0]:ent, dur, index = newtask.pop(0)que.append((dur, index, ent))heapq.heapify(que)if que:dur, index, ent = heapq.heappop(que)time += durres.append(index) while que:dur, index, ent = heapq.heappop(que)time += durres.append(index) return res
Leetcode 1834. Single-Threaded CPU [Python]相关推荐
- LeetCode题解(1834):单线程CPU(Python)
题目:原题链接(中等) 标签:堆.排序 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N l o g N ) O(NlogN) O(NlogN) O ( N ) O(N ...
- LeetCode——1834. 单线程 CPU(Single-Threaded CPU)[中等]——分析及代码(Java)
LeetCode--1834. 单线程 CPU[Single-Threaded CPU][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 优先队列 (1)思路 (2)代码 (3)结果 ...
- How is javascript asynchronous AND single threaded?
原文: https://www.sohamkamani.com/blog/2016/03/14/wrapping-your-head-around-async-programming/ ------- ...
- 多线程编程模式之Single Threaded Execution 模式
一.Single Threaded Execution 模式介绍 简单的来说,Single threaded execution 模式描述了在一种多线程环境下各个线程对于公用资源的使用方式--任一时刻 ...
- [勇者闯LeetCode] 136. Single Number
[勇者闯LeetCode] 136. Single Number Description Given an array of integers, every element appears twice ...
- LeetCode 75. Sort Colors (python一次遍历,模拟三路快排)
LeetCode 75. Sort Colors (python一次遍历,模拟三路快排) 题目分析: 本题需要实现数字只包含0,1,2的排序,并且要求一次遍历. 由于只用把数字隔离开,很容易想到快排的 ...
- LeetCode 字符串简单部分 算法 python实现
''' #2018-06-02 June Saturday the 22 week, the 153 day SZ LeetCode 字符串简单部分 算法 python实现 https://leetc ...
- 【?异或】LeetCode 260. Single Number III
LeetCode 260. Single Number III Solution1: 博客转载自:http://www.cnblogs.com/grandyang/p/4741122.html 这道题 ...
- 【异或】LeetCode 137. Single Number II
LeetCode 137. Single Number II Solution1:不会做,抄的 博客转载自:http://www.cnblogs.com/grandyang/p/4263927.htm ...
- 【异或】LeetCode 136. Single Number
LeetCode 136. Single Number Solution1:我的答案 还好异或的性质没记错,还好,还好 class Solution { public:int singleNumber ...
最新文章
- date js 半年_js Date 日期使用上的一个坑
- devops工程师_DevOps工程师的认证
- Android与物联网设备通信-网络模型分层
- Ctrl + R 后,悲剧咯、、、、
- python之绘制图形库turtle
- 中国生态系统服务空间数据集/食物生产、土壤保持、水源涵养、防风固沙、生物多样性、碳固定
- 云服务器obs_华为云服务器ECS挂载对象存储服务OBS教程
- 期刊论文格式是什么样的,如何排版?
- java物流项目功能介绍_JAVAEE——BOS物流项目13:Quartz概述、创建定时任务、使用JavaMail发送邮件、HighCharts概述、实现区域分区分布图...
- Vue项目-2首页开发(header)
- 如何制作手机自适应网页
- MySQL数据库基础03 韩顺平 自学笔记
- A*算法中二叉堆的使用
- Matlab 线性拟合 非线性拟合
- 康考迪亚大学 计算机科学,康考迪亚大学 Concordia University
- Ant design vue pro 添加多页签
- (论文阅读笔记)Semantic-Aware Domain Generalized Segmentation
- 【C语言】编程实现输出矩阵上/下三角的数值。要求:输入一个正整数n和n阶矩阵的数值,打印输出矩阵、下三角和上三角的数值。
- 华为举办首届室内数字化产业合作论坛,与6家伙伴签署合作备忘录
- 搭建gitserver并实现git push 自动部署