使用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. date js 半年_js Date 日期使用上的一个坑
  2. devops工程师_DevOps工程师的认证
  3. Android与物联网设备通信-网络模型分层
  4. Ctrl + R 后,悲剧咯、、、、
  5. python之绘制图形库turtle
  6. 中国生态系统服务空间数据集/食物生产、土壤保持、水源涵养、防风固沙、生物多样性、碳固定
  7. 云服务器obs_华为云服务器ECS挂载对象存储服务OBS教程
  8. 期刊论文格式是什么样的,如何排版?
  9. java物流项目功能介绍_JAVAEE——BOS物流项目13:Quartz概述、创建定时任务、使用JavaMail发送邮件、HighCharts概述、实现区域分区分布图...
  10. Vue项目-2首页开发(header)
  11. 如何制作手机自适应网页
  12. MySQL数据库基础03 韩顺平 自学笔记
  13. A*算法中二叉堆的使用
  14. Matlab 线性拟合 非线性拟合
  15. 康考迪亚大学 计算机科学,康考迪亚大学 Concordia University
  16. Ant design vue pro 添加多页签
  17. (论文阅读笔记)Semantic-Aware Domain Generalized Segmentation
  18. 【C语言】编程实现输出矩阵上/下三角的数值。要求:输入一个正整数n和n阶矩阵的数值,打印输出矩阵、下三角和上三角的数值。
  19. 华为举办首届室内数字化产业合作论坛,与6家伙伴签署合作备忘录
  20. 搭建gitserver并实现git push 自动部署

热门文章

  1. 一场伤亡了5%总人口的内战奠定了一个头号工业国
  2. 2011何凯文四六级冲刺视频及讲义
  3. Spark宽依赖 窄依赖 Job Stage Executor Task 总结
  4. 【SLM6550】 2A同步降压型锂电池充电电路
  5. MOT:MOTchallenge任务评价方法
  6. Mac开发之获取设备名字、IP地址和MAC地址
  7. dma-buf 由浅入深(七) —— alloc page 版本
  8. 阿里云超算战纪 | 凌云时刻
  9. 项目管理证书PMP的含金量真有那么高?
  10. eNSP报40错误 Virtualbox启动设备失败 解决办法