当前位置: 首页 > news >正文

2023-09-11力扣每日一题

链接:

630. 课程表 III

题意

一个课程花费ai天,需要在bi天之前修好才算成功,求最多能修几个课

ddl越靠后的应该越晚做,所以先按照b排序(这还用问为什么吗?

然后通过维护一个优先队列存储目前已经修的课程,按照a排序,花费时间越多的越不划算

这是我们可以发现,越后面进来的课,ddl越晚,那么当这个后面来的课a大于队列内的数字时,不能修

当这个后面来的课a小于队列内的数字时,是更优解,替换队列内的最大数(由于用时短,ddl晚,则一定合法

实际代码:

#include<bits/stdc++.h>
using namespace std;
static bool cmp(vector<int>& lhs,vector<int>& rhs)
{if(lhs[1]==rhs[1]) return lhs[0]<rhs[0];else return lhs[1]<rhs[1];
}
int scheduleCourse(vector<vector<int>>& courses)
{sort(courses.begin(),courses.end(),cmp);priority_queue<int>p_q;int sum=0;for(auto& course:courses){int need=course[0],ddl=course[1];if(sum+need<=ddl){sum+=need;p_q.push(need);}else if(!p_q.empty() && p_q.top()>need){sum-=p_q.top()-need;p_q.pop();p_q.push(need);}}return p_q.size();
}

限制:

  • 1 <= courses.length <= 104
  • 1 <= durationi, lastDayi <= 104
http://www.lryc.cn/news/164963.html

相关文章:

  • windows10使用wheel安装tensorflow2.13.0/2.10.0 (保姆级教程)
  • 【LeetCode与《代码随想录》】贪心算法篇:做题笔记与总结-JavaScript版
  • Http客户端OkHttp的基本使用
  • 认识网线上的各种参数标号
  • 软件测开记录(一)
  • 基数排序之代码解析
  • 使用C语言EasyX 创建动态爱心背景
  • springboot redisTemplate.opsForValue().setIfAbsent返回null原理
  • Python调用Jumpserver的Api接口增删改查
  • 后端入门教程:从零开始学习后端开发
  • 无涯教程-JavaScript - DB函数
  • 2023年财务顾问行业研究报告
  • 2023SICTF ROUND2 baby_heap
  • buuctf crypto 【密码学的心声】解题记录
  • 论文阅读 (100):Simple Black-box Adversarial Attacks (2019ICML)
  • 41 个下载免费 3D 模型的最佳网站
  • SpringMVC之JSR303和拦截器
  • 通过rabbitmq生成延时消息,并生成rabbitmq镜像
  • 结构型模式-外观模式
  • vue三个点…运算符时报错 Syntax Error: Unexpected token
  • C# wpf 实现桌面放大镜
  • Mybatis中的#{}和${}的区别
  • 选择(使用)数据库
  • GFS分布式文件系统
  • 虚函数、纯虚函数、多态
  • QGIS学习3 - 安装与管理插件
  • LeetCode377. 组合总和 Ⅳ
  • QT将数据写入文件,日志记录
  • vue2与vue3的使用区别与组件通信
  • 亚信科技与中国信通院达成全方位、跨领域战略合作