LeetCode 732. 我的日程安排表 III(差分思想)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

实现一个 MyCalendar 类来存放你的日程安排,你可以一直添加新的日程安排。

MyCalendar 有一个 book(int start, int end)方法。它意味着在start到end时间内增加一个日程安排,注意,这里的时间是半开区间,即 [start, end), 实数 x 的范围为, start <= x < end

当 K 个日程安排有一些时间上的交叉时(例如K个日程安排都在同一时间内),就会产生 K 次预订。

每次调用 MyCalendar.book方法时,返回一个整数 K ,表示最大的 K 次预订

请按照以下步骤调用MyCalendar 类: MyCalendar cal = new MyCalendar(); MyCalendar.book(start, end)

示例 1:
MyCalendarThree();
MyCalendarThree.book(10, 20); // returns 1
MyCalendarThree.book(50, 60); // returns 1
MyCalendarThree.book(10, 40); // returns 2
MyCalendarThree.book(5, 15); // returns 3
MyCalendarThree.book(5, 10); // returns 3
MyCalendarThree.book(25, 55); // returns 3
解释: 
前两个日程安排可以预订并且不相交,所以最大的K次预订是1。
第三个日程安排[10,40]与第一个日程安排相交,最高的K次预订为2。
其余的日程安排的最高K次预订仅为3。
请注意,最后一次日程安排可能会导致局部最高K次预订为2,但答案仍然是3,
原因是从开始到最后,时间[10,20][10,40][5,15]仍然会导致3次预订。说明:
每个测试用例,调用 MyCalendar.book 函数最多不超过 400次。
调用函数 MyCalendar.book(start, end)时, 
start 和 end 的取值范围为 [0, 10^9]

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/my-calendar-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

类似题目:
LeetCode 729. 我的日程安排表 I(set 二分查找)
LeetCode 731. 我的日程安排表 II(set二分查找 / 差分思想)

  • 本题更好的解法是线段树(写不来)
  • 用差分思想做
class MyCalendarThree {map<int,int> m;
public:MyCalendarThree() {}int book(int start, int end) {m[start]++;//差分思想m[end]--;int count = 0, maxCount = 0;for(auto it = m.begin(); it != m.end(); ++it){count += it->second;maxCount = max(maxCount, count);}return maxCount;}
};

364 ms 24.2 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

05.序列模型 W2.自然语言处理与词嵌入

文章目录1. 词汇表征2. 使用词嵌入3. 词嵌入的特性4. 嵌入矩阵5. 学习词嵌入6. Word2Vec7. 负采样8. GloVe 词向量9. 情感分类10. 词嵌入除偏作业参考&#xff1a;吴恩达视频课深度学习笔记自然语言处理与词嵌入 Natural Language Processing and Word Embeddings 1. 词汇表征…

Hadoop学习之HDFS

Hadoop学习之HDFS 1 HDFS相关概念 1.1 设计思路 分散存储&#xff0c;冗余备份。 分散存储&#xff1a;大文件被切割成小文件&#xff0c;使用分而治之的思想让多个服务器对同一个文件进行联合管理&#xff1b; 冗余备份&#xff1a;每个小文件做冗余备份&#xff0c;并且…

LeetCode 799. 香槟塔(DP动态规划)

文章目录1. 题目2. 解题1. 题目 我们把玻璃杯摆成金字塔的形状&#xff0c;其中第一层有1个玻璃杯&#xff0c;第二层有2个&#xff0c;依次类推到第100层&#xff0c;每个玻璃杯(250ml)将盛有香槟。 从顶层的第一个玻璃杯开始倾倒一些香槟&#xff0c;当顶层的杯子满了&…

天池在线编程 2020国庆八天乐 - 7 进制

文章目录1. 题目2. 解题1. 题目 https://tianchi.aliyun.com/oj/118289365933779217/122647324212270017 Given an integer, return its base 7 string representation. 输入范围为[-1e7, 1e7] 。 示例 样例 1: 输入: num 100 输出: 202样例 2: 输入: num -7 输出: -102.…

Hadoop学习之MapReduce

Hadoop学习之MapReduce 目录 Hadoop学习之MapReduce 1 MapReduce简介 1.1 什么是MapReduce 1.2 MapReduce的作用 1.3 MapReduce的运行方式 2 MapReduce的运行机制 2.1 相关进程 2.2 MapReduce的编程套路 2.3 MapTask的并行度 2.4 切片及其源码解读 2.5 ReduceTask的…

Hadoop学习之yarn

Hadoop学习之YARN 1 YARN简介 1.1 概述 YARN &#xff08;Yet Another Resource Negotiator&#xff09;是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&#xff0c;而 MapReduce 等运算程序则相当于运行于操作…

天池在线编程 2020国庆八天乐 - 8. 分糖果

文章目录1. 题目2. 解题1. 题目 https://tianchi.aliyun.com/oj/118289365933779217/122647324212270016 描述&#xff1a; 给定长度为偶数的整数数组&#xff0c;该数组中不同的数字代表不同种类的糖果&#xff0c; 每个数字表示一种糖果。 您需要将这些糖果平均分配给弟弟和…

Hive基础知识

Hive基础知识 1 Hive相关概念 1.1 Hive是什么 Hive是基于 Hadoop 的一个数据仓库工具&#xff0c;可以将结构化的数据映射为一张数据库表&#xff0c;并提供 HQL(Hive SQL)查询功能&#xff0c;最终底层将HQL语句转换为MapReduce任务的&#xff0c;底层数据是存储在 HDFS 上…

天池在线编程 2020国庆八天乐 - 6. 山谷序列(DP)

文章目录1. 题目2. 解题1. 题目 https://tianchi.aliyun.com/oj/118289365933779217/122647324212270018 描述&#xff1a; 给你一个长度为 n 的序列&#xff0c;在他的子序列中让你找一个山谷序列&#xff0c;山谷序列定义为&#xff1a; 序列的长度为偶数。假设子序列的长…

天池在线编程 2020国庆八天乐 - 4. 生成更大的陆地(BFS)

文章目录1. 题目2. 解题1. 题目 https://tianchi.aliyun.com/oj/118289365933779217/122647324262601668 LeetCode 上也有该题 827. 最大人工岛 描述 在一个0和1的2D网格中&#xff0c;我们最多将一个0改为1。 之后&#xff0c;最大岛屿的大小是多少&#xff1f; &#xff0…

python操作MySQL 模拟简单银行转账操作

一、基础知识 1、MySQL-python的安装 下载&#xff0c;然后 pip install 安装包 2、python编写通用数据库程序的API规范 &#xff08;1&#xff09;、数据库连接对象 connection&#xff0c;建立python客户端与数据库的网络连接&#xff0c;创建方法为 MySQLdb.Connect(参数) 参…

LeetCode 1007. 行相等的最少多米诺旋转

文章目录1. 题目2. 解题1. 题目 在一排多米诺骨牌中&#xff0c;A[i] 和 B[i] 分别代表第 i 个多米诺骨牌的上半部分和下半部分。&#xff08;一个多米诺是两个从 1 到 6 的数字同列平铺形成的 —— 该平铺的每一半上都有一个数字。&#xff09; 我们可以旋转第 i 张多米诺&a…

Hive内置函数大全

Hive内置函数大全 目录 Hive内置函数大全 1.复合类型构造函数 2 复合类型操作符 3 数值计算函数 4 日期函数 5 条件函数 6 字符串函数 7 汇总统计函数&#xff08;UDAF&#xff09; 8 表格生成函数(UDTF) 9 类型转换函数 10 数学函数 11 数学运算 12 逻辑运算 13…

python-mysql超简单银行转账

1首先先建数据库bank&#xff0c;数据结构表的名称为accoment&#xff1a; 2.python与mysql交互代码如下&#xff1a; # coding utf-8 # 1.导入模块 from pymysql import * import sys import pymysql# 2.接受命令行参数 if __name__ __main__:source_acctid 11target_acctid…

Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞

漏洞名称&#xff1a;Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞CNNVD编号&#xff1a;CNNVD-201311-054发布时间&#xff1a;2013-11-06更新时间&#xff1a;2013-11-06危害等级&#xff1a; 漏洞类型&#xff1a;信息泄露威胁类型&#xff1a;本地CVE编号&#x…

LeetCode 948. 令牌放置(贪心)

文章目录1. 题目2. 解题1. 题目 你的初始能量为 P&#xff0c;初始分数为 0&#xff0c;只有一包令牌。 令牌的值为 token[i]&#xff0c;每个令牌最多只能使用一次&#xff0c;可能的两种使用方法如下&#xff1a; 如果你至少有 token[i] 点能量&#xff0c;可以将令牌置为…

Python 中操作 MySQL 步骤

1.引入模块 在py文件中引入pymysql模块 from pymysql import *2.Connection 对象 用于建立与数据库的连接 创建对象&#xff1a;调用connect()方法 connconnect(参数列表)参数host&#xff1a;连接的mysql主机&#xff0c;如果本机是localhost参数port&#xff1a;连接的m…

nacos配置中心配置已经常见错误总结

&#x1f4bb;目录 前言1、基础架构2、依赖3、配置文件3.1、bolg-product配置文件3.1.1、application.yml配置文件3.1.2、bootstrap.yml配置文件3.1.3、nacos远程配置 3.2、bolg-system3.1.1、application.yml配置文件3.1.2、bootstrap.yml配置文件3.2.3、nacos远程配置 4、测试…

Hive解题思路

Hive解题思路 1 相关知识讲解 1.1 HQL语句的语法 sql语句的语法&#xff1a; select ..... from .... join ..... where .....group by ... having...order by|sort by|cluster by|distribute by .... &#xff08;1&#xff09;group by&#xff1a;按照某些字段的值进行…

tcl/tk demo

环境及版本说明: OSX10.9 tclsh -> tclsh8.5 wish -> wish8.5 查看本机运行环境: 1 which wish; 2 /usr/bin/wish 1 which tclsh; 2 /usr/bin/tclsh Demo功能说明: 用户登录窗口,输入用户名,密码.与文件中存储内容校验,如果相等,则提示"登录成功",否则提示&qu…