2023-09-11力扣每日一题

链接:

630. 课程表 III

题意

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

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

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

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

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

实际代码:

c++ 复制代码
#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
相关推荐
DashVector39 分钟前
向量检索服务 DashVector产品计费
数据库·数据仓库·人工智能·算法·向量检索
AI纪元故事会40 分钟前
【计算机视觉目标检测算法对比:R-CNN、YOLO与SSD全面解析】
人工智能·算法·目标检测·计算机视觉
夏鹏今天学习了吗1 小时前
【LeetCode热题100(59/100)】分割回文串
算法·leetcode·深度优先
卡提西亚1 小时前
C++笔记-10-循环语句
c++·笔记·算法
还是码字踏实1 小时前
基础数据结构之数组的双指针技巧之对撞指针(两端向中间):三数之和(LeetCode 15 中等题)
数据结构·算法·leetcode·双指针·对撞指针
Coovally AI模型快速验证3 小时前
当视觉语言模型接收到相互矛盾的信息时,它会相信哪个信号?
人工智能·深度学习·算法·机器学习·目标跟踪·语言模型
电院工程师4 小时前
SIMON64/128算法Verilog流水线实现(附Python实现)
python·嵌入式硬件·算法·密码学
轮到我狗叫了4 小时前
力扣.84柱状图中最大矩形 力扣.134加油站牛客.abb(hard 动态规划+哈希表)牛客.哈夫曼编码
算法·leetcode·职场和发展
丛雨要玩游戏4 小时前
字符函数和字符串函数
c语言·开发语言·算法
八个程序员4 小时前
自定义函数(C++)
开发语言·c++·算法