2024每日刷题(125)
Leetcode—1235. 规划兼职工作
算法思想
实现代码
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++) {int j = upper_bound(jobs.begin(), jobs.begin() + i, array<int, 3>{jobs[i][1], INT_MAX, 0}) - jobs.begin();f[i + 1] = max(f[i], f[j] + jobs[i][2]);}return f[n];}
};
运行结果
upper_bound
自定义排序规则
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!