使用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]相关推荐

  1. LeetCode题解(1834):单线程CPU(Python)

    题目:原题链接(中等) 标签:堆.排序 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O ( N l o g N ) O(NlogN) O(NlogN) O ( N ) O(N ...

  2. LeetCode——1834. 单线程 CPU(Single-Threaded CPU)[中等]——分析及代码(Java)

    LeetCode--1834. 单线程 CPU[Single-Threaded CPU][中等]--分析及代码[Java] 一.题目 二.分析及代码 1. 优先队列 (1)思路 (2)代码 (3)结果 ...

  3. How is javascript asynchronous AND single threaded?

    原文: https://www.sohamkamani.com/blog/2016/03/14/wrapping-your-head-around-async-programming/ ------- ...

  4. 多线程编程模式之Single Threaded Execution 模式

    一.Single Threaded Execution 模式介绍 简单的来说,Single threaded execution 模式描述了在一种多线程环境下各个线程对于公用资源的使用方式--任一时刻 ...

  5. [勇者闯LeetCode] 136. Single Number

    [勇者闯LeetCode] 136. Single Number Description Given an array of integers, every element appears twice ...

  6. LeetCode 75. Sort Colors (python一次遍历,模拟三路快排)

    LeetCode 75. Sort Colors (python一次遍历,模拟三路快排) 题目分析: 本题需要实现数字只包含0,1,2的排序,并且要求一次遍历. 由于只用把数字隔离开,很容易想到快排的 ...

  7. LeetCode 字符串简单部分 算法 python实现

    ''' #2018-06-02 June Saturday the 22 week, the 153 day SZ LeetCode 字符串简单部分 算法 python实现 https://leetc ...

  8. 【?异或】LeetCode 260. Single Number III

    LeetCode 260. Single Number III Solution1: 博客转载自:http://www.cnblogs.com/grandyang/p/4741122.html 这道题 ...

  9. 【异或】LeetCode 137. Single Number II

    LeetCode 137. Single Number II Solution1:不会做,抄的 博客转载自:http://www.cnblogs.com/grandyang/p/4263927.htm ...

  10. 【异或】LeetCode 136. Single Number

    LeetCode 136. Single Number Solution1:我的答案 还好异或的性质没记错,还好,还好 class Solution { public:int singleNumber ...

最新文章

  1. Fedora 20 安装搜狗拼音输入法
  2. 合并分支时有的文件删除了_GitGithub入门教程笔记(4)之分支管理一
  3. ELK实时日志分析平台的搭建部署及使用
  4. AI:PR的数学表示-传统方法PR
  5. 虚拟机在Hyper-V和Citrix Xenserver上的区别
  6. 深度学习之卷积神经网络(8)BatchNorm层
  7. ASP.NET Core MVC – 自定义 Tag Helpers
  8. 按频率对元素进行排序
  9. Smartfox Server 2x 在 CentOS6.3 上的搭建
  10. uni-app项目实现客服、用户聊天
  11. pandas.DataFrame.set_index
  12. CF1299B Aerodynamic 题解
  13. 无根树的计数——prufer序列
  14. 360手机卫士linux版,360手机卫士极速版
  15. python入门教材带视频_Python全套,从入门到进阶。视频,电子书
  16. Portapack应用开发教程(七)nrf24l01解调
  17. python接入支付宝接口
  18. WDM和WDF usb驱动不同点
  19. android内存问题详解--重要
  20. OS实战笔记(4)-- 虚拟地址和物理地址的转换

热门文章

  1. 你真的了解游戏设计缺陷吗?
  2. sklearn逻辑回归案例分析 《良/恶性乳腺癌肿瘤预测》
  3. 埇 mysql 不认这个字_输入法项目-用delphi生成GBK 中文编码 GBK 扩充汉字编码表(3) GBK/3: $8140 —$A0FE(部分)...
  4. IPSec配置与实验
  5. node 框架 LoopBack 教程
  6. GLaDOS加速网络套餐edu教育网邮箱免费使用
  7. 玩具总动员3中英文对白
  8. 机器学习课程期末综合测评
  9. 安装Microsoft Office 2010 提示需要安装MSXML版本6.10.1129.0 的解决
  10. 低版本TeamViewer下载地址是什么