力扣1235.规划兼职工作

力扣1235.规划兼职工作

  • 动态规划 + 二分

    • 将所有工作按照结束时间排序
    • f[i]表示前i个工作可获取的最大收益
    • 状态转移:取第i个工作,f[i] = profit[i] + f[j],其中j为结束时间小于i的开始时间的最大数
    • 不取第i个工作,f[i] = f[i-1]
    • 可以通过二分找到 j
    • 优化:在这里插入图片描述
  •   class Solution {public:int jobScheduling(vector<int>& startTime, vector<int>& endTime, vector<int>& profit) {int n = startTime.size();//三元组vector<array<int,3>> jobs(n);for(int i=0;i<n;i++)jobs[i] = {endTime[i],startTime[i],profit[i]};//按照结束时间排序ranges::sort(jobs,[](auto &a,auto &b){return a[0] < b[0];});vector<int> f(n+1);for(int i=0;i<n;i++){//j = upper_bound() - jobs.begin() - 1 + 1;//以i的开始时间作为结束时间在jobs里二分int j = upper_bound(jobs.begin(),jobs.begin()+i,array<int,3>{jobs[i][1],INT_MAX}) - jobs.begin();f[i+1] = max(f[i],f[j] + jobs[i][2]);}return f[n];}};
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/52965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低代码开发平台:重塑未来软件开发格局的关键力量

低代码开发平台正以前所未有的速度改变着软件开发的面貌&#xff0c;通过最小化手动编码&#xff0c;让用户能够迅速构建应用程序。随着企业对敏捷性和创新能力的追求日益增强&#xff0c;这类平台的需求激增。展望未来&#xff0c;技术进步与市场动态将引领低代码开发进入新的…

【C++】探索inline关键字:用法、限制与示例代码

文章目录 前言相关性质用法优点限制和注意事项inline 函数的定义位置inline 和类成员函数inline 和 constexpr 前言 我们知道&#xff1a;对于C、C&#xff0c;在编译时遇到函数调用时&#xff0c;编译器会生成一个函数调用的代码&#xff0c;这包括跳转到函数的地址和处理返回…

大阪OSAKA分子泵TG710MTG730TG1130TD7111TG2810TD3211TG3413手侧接线图

大阪OSAKA分子泵TG710MTG730TG1130TD7111TG2810TD3211TG3413手侧接线图

window下kafka3启动多个

准备工作 我们先安装好kafka&#xff0c;并保证启动成功&#xff0c;可参考文章Windows下安装Kafka3-CSDN博客 复制kafka安装文件 kafka3已经内置了zookeeper&#xff0c;所以直接复制就行了 修改zookeeper配置文件 这里我们修改zookeeper配置文件&#xff0c;主要是快照地址…

【MyBatis】MyBatis的一级缓存和二级缓存简介

目录 1、一级缓存 1.1 我们在一个 sqlSession 中&#xff0c;对 User 表根据id进行两次查询&#xff0c;查看他们发出sql语句的情况。 1.2 同样是对user表进行两次查询&#xff0c;只不过两次查询之间进行了一次update操作。 1.3 一级缓存查询过程 1.4 Mybatis与Spring整…

switch语句和while循环

switch语句和while循环 switch语句break的用法default的用法switch语句中的case和default的顺序问题 while语句while语句的执行流程while语句的具体例子 switch语句 switch 语句是⼀种特殊形式的 if…else 结构&#xff0c;用于判断条件有多个结果的情况。它把多重 的 else if…

Pandas 8-数据筛选过滤

1. 基于条件筛选 1.1 单条件筛选 可以使用布尔索引来筛选满足特定条件的数据。 import pandas as pd # 创建一个DataFrame data { Name: [Alice, Bob, Charlie, David], Age: [24, 27, 22, 32], City: [New York, Los Angeles, Chicago, Houston], Score: [85…

滚动视图ScrollView

activity_scroll_view.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_pare…

面试官让简述一下elasticsearch

当面试官要求你简述 Elasticsearch 时,你可以从以下几个方面来介绍: 1. 简介 Elasticsearch 是一个分布式的、RESTful 风格的搜索和分析引擎,基于 Lucene 构建。它能够处理海量数据,提供近乎实时的全文搜索功能,并且可以轻松扩展到数百台服务器及 PB 级结构化或非结构化…

【Python系列】 Python 中的枚举使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

合宙LuatOS开发板使用手册——Air700EAQ

EVB-Air700EL&700EY 开发板是合宙通信推出的基于 Air700EL&700EY 模组所开发的&#xff0c; 包含电源&#xff0c;SIM 卡&#xff0c;USB&#xff0c;PCB 天线等必要功能的最小硬件系统。 以方便用户在设计前期对 模块进 行性能评估&#xff0c;功能调试&#xff0c;软…

如何让“相信相信的力量”帮你多赚100万

公门洞开纳百川 众心逐梦越千山 号召引领潜力绽 心觉潜意识无间 我们经常听到这句话&#xff1a;相信相信的力量 为什么要相信相信的力量 相信是什么意思 相信的力量又是什么意思 我估计99%的人不知道这句话的底层逻辑是什么 如果你悟透了&#xff0c;你的并且践行了&…

PE文件结构详解(非常详细)

最近在参考OpenShell为任务栏设置图片背景时&#xff0c;发现里面使用了IAT Hook&#xff0c;这一块没有接触过&#xff0c;去查资料的时候发现IAT Hook需要对PE文件结构有一定的了解&#xff0c;索性将PE文件结构的资料找出来&#xff0c;系统学习一下。 PE文件结构 Portable…

【Qt】 QDateTimeEdit | QDial

文章目录 QDateTimeEdit —— 时间日期 微调框QDateTimeEdit 属性核心信号QDateTimeEdit 的使用 QDial —— 按钮QDial 属性核心信号QDial 使用 QDateTimeEdit —— 时间日期 微调框 QDateTimeEdit 属性 QDateTimeEdit 作为 时间日期 的 微调框 dateTime —— 时间⽇期的值…

SpringBoot配置多个kafka配置

参考文章&#xff1a;SpringBoot整合kafka配置多个kafka配置_springboot配置多个kafka-CSDN博客 引入依赖 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.7.14</version&…

minio文件存储+ckplayer视频播放(minio分片上传合并视频播放)

文章目录 参考简述效果启动minio代码配置类RedisConfigWebConfigMinioClientAutoConfigurationOSSPropertiesapplication.yml 实体类MinioObjectResultStatusCodeOssFileOssPolicy 工具类FileTypeUtilMd5UtilMediaTypeMinioTemplate 文件分片上传与合并MinioFileControllerMini…

Webpack打包常见问题及优化策略

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介Webpack打包常见问题及优化策略1. 引言2. Webpack打包常见问题2.1 打包时间过长问题描述主要原因 2.2 打包体积过大问题描述主要原因 2.3 依赖包版本冲突问题描述主要原因 2.4 动态导入和代码拆分问题问题描述主要原因 2.5 文件路径…

Python+VScode 两个不同文件夹里的py文件相互调用|python的模块调用|绝对导入

第一次用VScode写python遇到了模块无法识别的问题&#xff0c;搞了一整天&#xff0c; 上网查&#xff0c;chatGPT都不行&#xff0c;现在时解决了。 首先项目结构如下&#xff0c;四个文件夹&#xff0c;四个py文件 代码&#xff1a; def f1fun():print("f1") de…

Code Practice Journal | Day59-60_Graph09 最短路径(待更)

1. Dijkstra 1.1 原理与步骤 步骤&#xff1a; 选取距离源点最近且未被访问过的节点标记该节点为已访问更新未访问节点到源点的距离 1.2 代码实现 以KamaCoder47题为例 题目&#xff1a;47. 参加科学大会&#xff08;第六期模拟笔试&#xff09; (kamacoder.com) class Progra…

力扣2402.会议室 III

力扣2402.会议室 III 双堆模拟 一个堆存未占用的会议室编号一个堆存已占用的结束时间和编号 class Solution {public:int mostBooked(int n, vector<vector<int>>& meetings) {int cnt[n];memset(cnt,0,sizeof(cnt));priority_queue<int,vector<int&g…