LeetCode 2402.会议室III ----堆+模拟

news2024/11/18 13:58:05

5e5 的st与ed 容易看出来是用堆来写的一道题目,一开始我只用了一个堆,出现了问题

问题就是当我们当前这个会议有多个可以选择的会议室可以选择的时候不一定选择那个最先结束的会议室而是应该选择可以选择的那些里面编号最小的那一个,因此我们应该加一个步骤,先把已经结束的可以选择的会议室先挑出来按照编号排序,如果可以选先这么选不能选的话我们再选结束时间最早的一个就可以了,比较丑的一个模拟 调试的过程中还是很锻炼人的

最后千万不要忘了开longlong

using ll = long long;
typedef pair<ll,ll>PII;
const int N = 110;
priority_queue<PII,vector<PII>,greater<PII>>heap;
vector<PII>vec;
int cnt[N];

class Solution {
public:
    int mostBooked(int n, vector<vector<int>>& meetings) {
        vec.clear();
        int m = meetings.size();
        memset(cnt,0,sizeof cnt);
        
        while(heap.size())heap.pop();
        
        for(auto&t:meetings)
           vec.push_back({t[0],t[1]});
        
        
        sort(vec.begin(),vec.end());
        
        for(int i=0;i<n;i++)heap.push({-1,i});
        
        for(int i = 0;i<m;i++){
           
            
            
            
           ll xuyao = vec[i].first;
            priority_queue<PII,vector<PII>,greater<PII>>heap1;
            
            while(heap.size()){
                auto t = heap.top();
                if(xuyao>t.first){
                    heap1.push({t.second,t.first});
                    heap.pop();
                }
                 
                else break;
            
                
            }
       
            if(heap1.size()){
                auto t = heap1.top();
                cnt[t.first]++;
                heap.push({vec[i].second-1,t.first});
                heap1.pop();
            }else{
                auto t = heap.top();
                ll jieshu = t.first;
                cnt[t.second]++;
                heap.pop();
                heap.push({jieshu+vec[i].second-vec[i].first,t.second});
            }
            
            while(heap1.size()){
               auto t = heap1.top();
               heap1.pop();
               heap.push({t.second,t.first});
            }
            
      
            
        }
        
        ll ans = 0,idx=0;
     
        for(int i=0;i<n;i++){
          if(cnt[i]>ans){
             ans = cnt[i];
             idx=  i;
          }
        }
        
        return idx;
        
        return 0;
    }
};

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

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

相关文章

ConfigurationProperties之宽松绑定

前面我们讲了ConfigurationProperties 但这个东西只能匹配小写 我这样写就正常 但当我们将配置文件和属性类都改成大写时 配置文件一切正常 但ConfigurationProperties就开始报错了 这涉及到一个知识点 宽松绑定 也叫做 松散绑定 其实 ConfigurationProperties提供给我们了…

Python 数学函数和 math 模块指南

Python 提供了一组内置的数学函数&#xff0c;包括一个广泛的数学模块&#xff0c;可以让您对数字执行数学任务。 内置数学函数。min() 和 max() 函数可用于在可迭代对象中查找最低或最高值&#xff1a; 示例&#xff1a;查找可迭代对象中的最低或最高值&#xff1a; x min…

深入理解udp

1.再谈端口号 1.1复习 我们上一篇谈了很久的应用层的http&#xff0c;并在此前我们使用socket编程写了一个能相互通信的客户端与服务端&#xff0c;但是我们也只是粗略的理解了一下tcp和udp在编程过程中所形成的差异性&#xff0c;并没有实质去了解一下其详细内容&#xff0c;…

KNN模型

使用K-Nearest Neighbors (KNN)算法进行分类。首先加载一个数据集&#xff0c;然后进行预处理&#xff0c;选择最佳的K值&#xff0c;并训练一个KNN模型。 # encodingutf-8 import numpy as np datas np.loadtxt(datingTestSet2.txt) # 加载数据集&#xff0c;返回一个numpy数…

68 内网安全-域横向PTHPTKPTT哈希票据传递

目录 演示案例:域横向移动PTH传递-Mimikatz域横向移动PTK传递-Mimikatz域横向移动PTT传递-MS14068&kekeo&local国产Ladon内网杀器测试验收-信息收集,连接等 涉及资源: PTH(pass the hash) #利用lm或ntlm的值进行的渗透测试 PTT(pass the ticket) #利用的票据凭证TGT进行…

餐饮连锁品牌2023:端起“外卖碗”,吃上“下沉饭”

作者 | 陈小江 文 | 螳螂观察 “没想到&#xff0c;蜜雪(蜜雪冰城&#xff09;能到我们这乡镇来开&#xff0c;我觉得挺意外的。「柏记水饺」也算挺大一品牌&#xff0c;没想到也能来&#xff08;我们&#xff09;乡镇”。 谈起不断有连锁品牌进镇开店&#xff0c;黑龙江讷河…

算法笔记【3】-冒泡排序法

文章目录 一、原理二、代码实现三、算法特点 一、原理 冒泡排序是一种简单但有效的排序算法&#xff0c;它可以用于对数字进行升序排序。该算法通过多次比较相邻元素并交换位置来实现排序的目的。冒泡排序的基本思想是从第一个元素开始&#xff0c;依次比较相邻的两个元素&…

python 练习 在列表元素中合适的位置插入 输入值

目的&#xff1a; 有一列从小到大排好的数字元素列表&#xff0c; 现在想往其插入一个值&#xff0c;要求&#xff1a; 大于右边数字小于左边数字 列表元素&#xff1a; [1,4,6,13,16,19,28,40,100] # 方法&#xff1a; 往列表中添加一个数值&#xff0c;其目的方便元素位置往后…

ardupilot开发 --- 深度相机 篇

1. ZED 相机 1.1 规格 2. RealSense 需要机载计算机作为中介&#xff01;&#xff01;

【HarmonyOS】低代码平台组件拖拽使用技巧之网格布局

【关键字】 HarmonyOS、低代码平台、组件拖拽、网格布局 1、写在前面 前面分享了在低代码平台上使用堆叠容器和滚动容器的组件拖拽使用技巧&#xff0c;本篇我们继续来学习其它组件的使用&#xff0c;今天为大家介绍的是网格布局的使用&#xff0c;需要注意的是&#xff0c;网…

NLP之LSTM与BiLSTM

文章目录 代码展示代码解读双向LSTM介绍&#xff08;BiLSTM&#xff09; 代码展示 import pandas as pd import tensorflow as tf tf.random.set_seed(1) df pd.read_csv("../data/Clothing Reviews.csv") print(df.info())df[Review Text] df[Review Text].astyp…

【Linux进程控制】进程控制专篇

【Linux进程控制】进程控制专篇 目录 【Linux进程控制】进程控制专篇进程创建fork函数写实拷贝fork常规用法fork调用失败的原因 进程终止进程退出场景进程常见退出方法_exit函数return退出 进程等待进程等待必要性进程等待的方法获取子进程status 具体代码实现进程程序替换替换…

3.5 队列的表示和操作的实现

思维导图&#xff1a; 3.5.1 队列类型 3.5.1 队列的类型定义 1. 简介 队列是一种特殊的线性表&#xff0c;它的特性是只能在表的一端进行插入操作&#xff0c;而在另一端进行删除操作。通常将允许插入操作的一端称为队尾&#xff0c;允许删除操作的一端称为队头。 2. 抽象…

ArcGIS计算土地现状容积率

本文讲解在ArcGIS中,基于建筑数据和地籍边界数据,计算土地容积率。 一、容积率介绍 容积率(Plot Ratio/Floor Area Ratio/Volume Fraction)是指一个小区的地上建筑总面积与净用地面积的比率。又称建筑面积毛密度。 二、数据分析 (1)建筑数据(dwg) (2)地籍边界数据…

VsCode 只有一个标签页 编辑区只能打开一个文件

产生如图所示的问题&#xff1a; 可能是不小心取消了勾选 勾选&#xff0c;Show Tabs

软件安利——火绒安全

近年来&#xff0c;以优化、驱动、管理为目标所打造的软件屡见不鲜&#xff0c;大同小异的电脑管家相继走入了公众的视野。然而&#xff0c;在这日益急功近利的社会氛围驱动之下&#xff0c;真正坚持初心、优先考虑用户体验的电脑管家逐渐湮没在了浪潮之中。无论是鲁大师&#…

Enfocus PitStop Pro 2022(Acrobat dc增强)

Enfocus PitStop Pro 2022是一款Acrobat dc PDF编辑和校对工具&#xff0c;为Mac用户提供了强大的功能和精确的控制&#xff0c;以确保PDF文件的质量和准确性。该软件具有全面的PDF编辑功能&#xff0c;包括添加、删除或重新排列页面&#xff0c;合并和分割PDF文件&#xff0c;…

工程中Http的请求、各种回调函数的使用

文章目录 1、登录回调以及各种函数的使用1、SdoLoginClient工程中的SdoBase_Initialize3接口2、LoginClient中的Initialize接口3、ProcessResponse调用ProcessLoginResponse传递参数给回调函数使用4、ProcessLoginResponse登录响应接口的使用5、ProcessResponse调用然后根据req…

四、[mysql]索引优化-1

目录 前言一、场景举例1.联合索引第一个字段用范围查询不走索引(分情况&#xff09;2.强制走指定索引3.覆盖索引优化4.in和or在表数据量比较大的情况会走索引&#xff0c;在表记录不多的情况下会选择全表扫描5.like 后% 一般情况都会走索引(索引下推) 二、Mysql如何选择合适的索…