【错题集-编程题】主持人调度(一)(排序)

简介: 【错题集-编程题】主持人调度(一)(排序)


一、分析题目

区间问题技巧:左端点排序或者按照右端点排序。

左端点排序后,仅需考虑后续区间是否能与前⼀个区间重叠即可。


二、代码

1、没看题解之前AC的代码

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param schedule int整型vector<vector<>> 
     * @return bool布尔型
     */
    bool hostschedule(vector<vector<int> >& schedule) {
        vector<int> t;
        sort(schedule.begin(), schedule.end());
        int n=schedule.size();
        for(int i=0; i<n; i++)
        {
            t.push_back(schedule[i][0]);
            t.push_back(schedule[i][1]);
        }
        for(int i=0; i<n-1; i++)
            if(t[i]>t[i+1])
                return false;
        return true;
    }
};

2、值得学习的代码

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param schedule int整型vector<vector<>> 
     * @return bool布尔型
     */
    bool hostschedule(vector<vector<int> >& schedule) {
        sort(schedule.begin(), schedule.end());
        int n=schedule.size();
        for(int i=1; i<n; i++)
            if(schedule[i][0]<schedule[i-1][1])
                return false;
        return true;
    }
};

三、反思与改进

我的思路是:将所有活动的开始时间 starti 和结束时间 endi 都放进数组 t 当中,然后遍历数组 t,如果前一个时间大于后一个时间,则一定会发生时间冲突。思路是正确的,但忘记在最开始对 schedule 的左端点进行排序了,这样就导致可能所给的 schedule 里后面的时间段的开始时间小于前面时间段的时间。


相关文章
|
人工智能 运维 监控
阿里云Milvus产品发布:AI时代云原生专业向量检索引擎
随着大模型和生成式AI的兴起,非结构化数据市场迅速增长,预计2027年占比将达到86.8%。Milvus作为开源向量检索引擎,具备极速检索、云原生弹性及社区支持等优势,成为全球最受欢迎的向量数据库之一。阿里云推出的全托管Milvus产品,优化性能3-10倍,提供企业级功能如Serverless服务、分钟级开通、高可用性和成本降低30%,助力企业在电商、广告推荐、自动驾驶等场景下加速AI应用构建,显著提升业务价值和稳定性。
|
存储 编解码 JavaScript
Google Earth Engine(GEE)——GEE最全介绍(7000字长文)初学者福音!
Google Earth Engine(GEE)——GEE最全介绍(7000字长文)初学者福音!
3191 0
Google Earth Engine(GEE)——GEE最全介绍(7000字长文)初学者福音!
深入理解Debug断点调试技巧
深入理解Debug断点调试技巧
1482 1
|
测试技术 开发工具
支付宝支付-PC电脑网站支付
支付产品全面升级(更新时间:2017/05/05 ),若您使用的是老接口,请移步老版本即时到账文档。
3408 0
|
设计模式 JSON Dart
Dart笔记:build_runner-用于 Dart 代码生成和模块化编译的构建系统
Dart笔记:build_runner-用于 Dart 代码生成和模块化编译的构建系统
1105 0
|
数据库 开发者
软件工程高效学 | 实践工具:Microsoft Office Visio
软件工程是计算机领域的一门专业基础课,它对于培养开发者的软件素质、提高开发者的软件开发能力与软件项目管理能力具有重要意义。本篇介绍实践工具——Microsoft Office Visio。
1115 0
软件工程高效学 | 实践工具:Microsoft Office Visio
|
SQL 运维 负载均衡
漫谈OB | OceanBase 在海量数据和高并发下的应用实践
数据库选型用 OceanBase 的原因很多,传统数据库上的业务做分布式数据库选型,其中一类原因是数据库遇到瓶颈。这类客户业务特点之一是数据量和访问量都很大。本文总结业务数据量和访问量大的业务场景下的OceanBase实践经验。 💡 本文适用于 OceanBase 企业版和社区版
1534 0
漫谈OB | OceanBase 在海量数据和高并发下的应用实践
|
SQL Oracle 关系型数据库
数据库管理工具:全网最全,MySQL 数据库图形化管理界面应用 Navicat Premium 使用教程
数据库管理工具:全网最全,MySQL 数据库图形化管理界面应用 Navicat Premium 使用教程
988 0
数据库管理工具:全网最全,MySQL 数据库图形化管理界面应用 Navicat Premium 使用教程
|
API 开发者 Python
Matplotlib中的两种绘图API说明
在Matplotlib库中提供了两种风格的API供开发者使用:一种是Pyplot编程接口(state-based),一种是面向对象对象的编程接口(object-based)。
319 0
|
Linux 编译器 Shell
【Linux】【编译】编译及Makefile的调试手段和技巧
【Linux】【编译】编译及Makefile的调试手段和技巧
1021 0

热门文章

最新文章