当前位置: 首页 > news >正文

《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(57)乾坤尺量会议室 - 会议室安排(贪心排序)

《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(57)乾坤尺量会议室 - 会议室安排(贪心排序)

哪吒在数据修仙界中继续他的修炼之旅。这一次,他来到了一片神秘的乾坤尺会议室,室内有一把巨大的乾坤尺,尺身闪烁着神秘的光芒。会议室的入口处有一块巨大的石碑,上面刻着一行文字:“欲量此室,需以乾坤尺之力,安排会议室,贪心排序显真身。”

哪吒定睛一看,石碑上还有一行小字:“给定会议时间区间[[0, 30], [5, 10], [15, 20]],最小需要2个会议室。”哪吒心中一动,他知道这是一道关于会议室安排的难题,需要通过贪心排序的方法来找到所需的最小会议室数量。

暴力解法:乾坤尺的初次尝试

哪吒心想:“要找到最小的会议室数量,我可以逐个会议检查。”他催动乾坤尺之力,通过逐个会议安排,试图找到最小的会议室数量。

int minMeetingRooms(vector<vector<int>>& intervals) {
   
    if (intervals.empty()) return 0;
    sort(intervals.begin(), intervals.end());
    vector<int> rooms;
    for (auto& interval : intervals) {
   
        bool found = false;
        for (int i = 0; i < rooms.size(); ++i) {
   
            if (interval[0] >= rooms[i]) {
   
                rooms[i] = interval[1];
                found = true;
                break;
            }
        }
        if (!found) {
   
            rooms.push_back(interval[1]);
        }
    }
    return rooms.size();
}

哪吒成功地计算了所需的最小会议室数量,但乾坤尺的光芒却黯淡了下来。他意识到,这种方法虽然可行,但效率低下,尤其是当会议数量很多时,灵力消耗巨大。

C++语法点

在C++中,会议室安排问题涉及到排序和贪心策略。以下是一些重要特性:

  • 排序

    • 使用sort函数对会议区间按开始时间排序。
    • 常用操作:
      • sort(intervals.begin(), intervals.end()):按会议开始时间排序。
  • 贪心策略

    • 通过维护一个房间列表,记录每个房间的结束时间。
    • 常用操作:
      • 遍历房间列表,寻找最早可用的房间。

高阶优化:贪心排序的智慧

哪吒元神中突然浮现金色铭文——「乾坤尺量会议室,贪心排序显真身」。他意识到,可以通过贪心排序优化会议室安排过程。

哪吒决定使用贪心算法,先按会议开始时间排序,然后维护一个最小堆来跟踪会议室的结束时间。通过这种方式,他成功地计算了所需的最小会议室数量,而且灵力消耗大幅减少。

int minMeetingRooms(vector<vector<int>>& intervals) {
   
    if (intervals.empty(

相关文章:

  • 麒麟服务器操作系统Node.js环境部署手册
  • 3.16-线程同步
  • Excel(函数篇):COUNTIF与CONUTIFS函数、SUMIF与SUMIFS函数、ROUND函数、MATCH与INDEX函数、混合引用与条件格式
  • ollama注册自定义模型(safetensors)
  • 基于大模型的分泌性中耳炎全流程预测与治疗管理研究报告
  • 【C++】一文吃透STL容器——list
  • Linux内核实时机制30 - 实时优化方案 - 实时与非实时争抢
  • 谷歌开源多模态大模型 Gemma 3:轻量级与高性能的完美融合
  • 【经验】Orin系列Ubuntu远程桌面:VNC、NoMachine、URDC
  • Java EE(11)——文件I(input)/O(output)
  • 有效的山脉数组 力扣941
  • 使用GoldenGate完成SQLserver到Oracle的数据实时同步
  • C语言之 条件编译和预处理指令
  • 数据结构-树(详解)
  • 麒麟服务器操作系统Sqlite部署手册
  • 神聖的綫性代數速成例題4. 矩陣乘法的充要條件、矩陣運算的定義
  • Matlab 液位系统根据输入和输出信号拟合一阶传递函数
  • 【网络】什么是公共 API(Application Programming Interface)?
  • 发现一个GoVCL的问题
  • 并发基础—三大问题:可见性、原子性、有序性
  • 姜再冬大使会见巴基斯坦副总理兼外长达尔
  • 中国电信财务部总经理周响华调任华润集团总会计师
  • 吴清:创造条件支持优质中概股企业回归内地和香港股市
  • 专家解读《人源类器官研究伦理指引》:构建类器官研究全过程伦理治理框架
  • 余姚警方通报:一司机未悬挂车牌,事故现场就地粘贴安装
  • 体坛联播|拜仁遭绝平未能提前夺冠,刘翔钻石联赛纪录作古