Leetcode 1235. 规划兼职工作(DAY 73) ---- 动态规划学习期(上午去上高数课了 课下老师说上次旷课不扣平时分嘻嘻)
原题题目
代码实现(首刷TLE 24/27)
class Solution {public:int jobScheduling(vector<int>& startTime, vector<int>& endTime, vector<int>& profit) {int size = startTime.size(),ret = -1;vector<vector<int>> temp;for(int i=0;i<size;++i)temp.push_back({startTime[i],endTime[i],profit[i]});vector<int> dp(size+1,0);sort(temp.begin(),temp.end(),[](const vector<int>& a,const vector<int>& b){ return a[1]<b[1];});for(int i=0;i<size;i++){dp[i] = profit[i];for(int j=0;j<i;j++){if(endTime[j] <= startTime[i])dp[i] = max(dp[i],dp[j]+profit[i]);else break;}ret = max(dp[i],ret);}return ret;}
};
代码实现(二分加速给我绕晕了 cv别人的二分加速代码)
class Solution {public:int jobScheduling(vector<int>& startTime, vector<int>& endTime, vector<int>& profit) {int n = startTime.size();vector<int> id(n);iota(id.begin(), id.end(), 0);// 生成序列 0,1,2,。。。sort(id.begin(), id.end(),[&](auto a, auto b){return endTime[a] < endTime[b];//按结束时间排序});map<int,int> dp;dp[0] = 0;//边界dp[endTime[id[0]]] = profit[id[0]];//第一个状态int ans = profit[id[0]];for(int i = 1; i < n; i++){int idx = id[i];//序号auto it = dp.upper_bound(startTime[idx]);//二分查找int dp_prev = (--it)->second;//上一个不冲突结束时间点的最大收益dp[endTime[idx]] = max(ans, max(dp[endTime[idx]], dp_prev+profit[idx]));ans = max(ans, dp[endTime[idx]]);}return ans;}
};
Leetcode 1235. 规划兼职工作(DAY 73) ---- 动态规划学习期(上午去上高数课了 课下老师说上次旷课不扣平时分嘻嘻)相关推荐
- LeetCode 1235. 规划兼职工作(动态规划+二分查找)
文章目录 1. 题目 2. 解题 1. 题目 你打算利用空闲时间来做兼职工作赚些零花钱. 这里有 n 份兼职工作,每份工作预计从 startTime[i] 开始到 endTime[i] 结束,报酬为 ...
- LeetCode每日一题——1235. 规划兼职工作
LeetCode每日一题系列 题目:1235. 规划兼职工作 难度:困难 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 你打算利用空闲时间来做兼职工作赚些零花钱. 这里有 n ...
- 【1235. 规划兼职工作】
来源:力扣(LeetCode) 链接: 你打算利用空闲时间来做兼职工作赚些零花钱. 这里有 n 份兼职工作,每份工作预计从 startTime[i] 开始到 endTime[i] 结束,报酬为 ...
- 动态规划-规划兼职工作
动态规划-规划兼职工作 一.问题描述 你打算利用空闲时间来做兼职工作赚些零花钱.这里有 n 份兼职工作,每份工作预计从 startTime 开始到 endTime 结束,报酬为 profit.给你一份 ...
- 【LittleXi】规划兼职工作
[LittleXi]规划兼职工作 题目链接 心路历程: 早上起来打开题目,一点思路没有 摆烂点开<戴森球>就到中午了,退出游戏,一眼线段树,直接秒了 总结:打游戏,也可以提高思维能力 解题 ...
- Leetcode 1218. 最长定差子序列(DAY 47) ---- 动态规划学习期(昨天又没有看书捏 懒狗biss)
原题题目 代码实现(首刷自解超时
- 分享三个可以在家做的正规兼职工作,看到就是赚到
你可以在家做正式的兼职工作.在线兼职工作值得考虑,时间相对自由.在线兼职收入可能不如线下滴滴和外卖立竿见影,但仍然可以坚持收入.有些人比工作工资发展得更高.当然,天上不会有馅饼,不劳无获. 那么有哪些 ...
- 2021-06-03 wms软件如何规划仓库管理工作?
有一些仓库的人员管理.备件管理较为混乱,首先在人员管理方面没有形成一个管理体系,整个仓库人员角色还没有清晰,有时介于售后与仓库之间,工作职责不够明确,导致工作效率不高.其次在人员管理方面没有一个很好的 ...
- 用场景来规划测试工作
姓名:吴发达 性别:男 特点: 新时代的产物:现代典型沙发男:想足不出户就解决无聊 年龄:20 爱好 漫画 在校学生 场景:该沙发男想在周末待在宿舍解决无聊问题,于是待在靠椅上,翘着二郎腿,点击鼠标, ...
- 26岁宝妈去汤臣倍健面试兼职工作
26岁宝妈去汤臣倍健面试兼职工作,居然被嫌弃年龄偏大,太扎心了! 今天下午去汤臣倍健面试仓库文员,HR说需要有会计基础,不然盘点的时候会很吃力,另外加班强度很大,不适合我这样的哺乳期妈妈.看来我有必要 ...
最新文章
- PyTorch 笔记(20)— torchvision 的 datasets、transforms 数据预览和加载、模型搭建(torch.nn.Conv2d/MaxPool2d/Dropout)
- 整合shiro出现UnsatisfiedDependencyException,org.springframework.beans.factory.BeanNotOfRequiredTypeExcep
- boost::get_deleter相关的测试程序
- [LeetCode]Find Minimum in Rotated Sorted Array
- C语言目录操作 (Linux/Unix)
- 平稳序列的预测和拟合之模型识别
- 简述HTML5的概念和组成结构,JS相关概念
- java的main是主线程吗_main函数是主线程吗
- Hive 使用SQL统计出每个用户的累积访问次数
- java提高篇(二)-----理解java的三大特性之继承
- 现代控制理论(4)——李雅普诺夫稳定性理论
- 为什么html中图片显示不出来,网页图片不能显示 网页图片显示不出来的解决办法...
- vnc远程控制软件配置,vnc远程控制软件怎么配置,教程详解
- Goolgle Analytics
- 机器学习(十五)回归算法之线性回归
- 脑子笨的人可以学计算机吗,学理科吃力,我真的很笨吗
- 积分商城开发及小程序积分商城功能介绍
- 机器人砂型铸造_启东精密砂型铸造
- Apple’s ‘Big-A ’ Data Center
- 基于matlab电热水器模糊温度控制,基于Matlab的锅炉过热汽温模糊控制系统仿真
热门文章
- 怎么把磁盘合并成一个?两个硬盘分区合并,如何硬盘分区合并
- the little schemer 笔记(10.1)
- Python学习记录 使用百度aip模块(API Python-SDK)实现人脸识别
- Pycharm中的Python Console与Terminal
- 删除cortana_如何从Windows 10任务栏中删除Cortana
- [转]页面回传与js调用服务器端事件
- 复盘2020年全球医疗行业:新冠疫苗争分夺秒、跨国药企押注中国、药企整合并购不断 | 医药观察...
- java老王博客_老王的JAVA基础课:第5课 面向对象
- js原生 阿拉伯数字转中文大写 (金额)
- 图论-生成树-黑暗城堡