首页 > 其他分享 >力扣2589 5.16

力扣2589 5.16

时间:2024-05-22 18:56:23浏览次数:23  
标签:tasks int 2589 力扣 vector 5.16 now 贪心

原题网址:此处为链接

个人难度评价:1700

分析:
原本的想法是按开始时间排序后遍历,然后贪心的把下一段的和这一段的放一起,发现不够放了就把不够的算出来截为新的一段。最后发现其实有后效性。
正解的贪心是:按结束时间排序后(当然是升序),贪心的把本段的都放最后。每次放的时候先检查本区间内哪些已经被放了,放了的就减去。
为什么?这样考虑:一个区间剩下的部分和其他的段相交应该都是其后缀。很难理解但手玩之后可以发现这确实不假。

源码:

// 2589*
#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;

class Solution {
public:

    int findMinimumTime(vector<vector<int>>& tasks) {
        sort(tasks.begin(), tasks.end(), [](const vector<int> &a, vector<int> &b){return a[1]<b[1];});
        int f[2001];
        memset(f, 0, sizeof(f));
        for (auto i: tasks){
            for (int j=i[0]; j<=i[1]; j++){
                if (f[j])
                    i[2] -= 1;
            }
            int now = i[1];
            while (i[2] > 0){
                if (f[now] == 0){
                    f[now] = 1;
                    i[2] -= 1;
                }
                now -= 1;
            }
        }
        int ans = 0;
        for (int i=1; i<=2000; i++){
            if (f[i])
                ans += 1;
        }
        return ans;
    }
};

标签:tasks,int,2589,力扣,vector,5.16,now,贪心
From: https://www.cnblogs.com/TrainerMarvin/p/18206916

相关文章

  • 力扣-1209. 删除字符串中的所有相邻重复项 II
    1.题目题目地址(1209.删除字符串中的所有相邻重复项II-力扣(LeetCode))https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string-ii/题目描述给你一个字符串 s,「k倍重复项删除操作」将会从s 中选择 k 个相邻且相等的字母,并删除它们,使被删去的字符串的......
  • 力扣刷题备忘1
    1、释放链表节点时要注意,不要出现先保存虚拟头节点,然后又释放的情况,释放后的地址不应该被使用正确写法:ListNode*dhead=newListNode(0,head);//虚拟头结点ListNode*result=dhead->next;//释放dhead之前,使用result保存deletedhead;错误写法:ListNode*result=dhea......
  • 力扣207.课程表
    题目你这个学期必须选修numCourses门课程,记为0到numCourses-1。在选修某些课程之前需要一些先修课程。先修课程按数组prerequisites给出,其中prerequisites[i]=[ai,bi],表示如果要学习课程ai则必须先学习课程bi。例如,先修课程对[0,1]表示:想要学习课程......
  • 【每周例题】力扣 C++ 一年中的第几天
    一年中的第几天题目一年中的第几天 思路分析1.substr函数分割字符串,stoi函数将字符串转为十进制stoi函数介绍substr函数介绍2.判断是否为闰年,如果是闰年,则二月的天数+1代码#include<bits/stdc++.h>usingnamespacestd;intmain(){ intmonths[13]={0,31,28,3......
  • 力扣-316. 去除重复字母
    1.题目题目地址(316.去除重复字母-力扣(LeetCode))https://leetcode.cn/problems/remove-duplicate-letters/题目描述给你一个字符串s,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。 示例1:输入:s=......
  • 力扣-901. 股票价格跨度
    1.题目题目地址(901.股票价格跨度-力扣(LeetCode))https://leetcode.cn/problems/online-stock-span/题目描述设计一个算法收集某些股票的每日报价,并返回该股票当日价格的跨度。当日股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包......
  • 力扣-739. 每日温度
    1.题目题目地址(739.每日温度-力扣(LeetCode))https://leetcode.cn/problems/daily-temperatures/题目描述给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,......
  • 力扣-84. 柱状图中最大的矩形
    1.题目介绍题目地址(84.柱状图中最大的矩形-力扣(LeetCode))https://leetcode.cn/problems/largest-rectangle-in-histogram/题目描述给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。求在该柱状图中,能够勾勒出来的矩形的最大面积。 示......
  • 力扣-96. 下一个更大元素 I
    1.题目题目地址(496.下一个更大元素I-力扣(LeetCode))https://leetcode.cn/problems/next-greater-element-i/题目描述nums1 中数字 x 的下一个更大元素是指 x 在 nums2中对应位置右侧的第一个比 x 大的元素。给你两个没有重复元素的数组 nums1和 nums......
  • 5.16
    计网TCP的流量控制5.7.1利用滑动窗口实现流量控制流量控制:让发送方发送速率不要太快,让接收方来得及接收滑动窗口的单位:字节滑动窗口流量控制流程:开始时rwnd=400,每个报文段长100字节持续计时器:解决盲等死锁。只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器,若计时器到......