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

北京建站方案wap端是电脑还是手机

北京建站方案,wap端是电脑还是手机,东莞人才服务中心官网,深圳福田专业网站改版文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在这篇文章中,我们将深入探讨LeetCode第252题“会议室”的问题,提供一个用Swift编写的解决方案,并结合实际场景进行分析。通过这篇文章,你将…

在这里插入图片描述
在这里插入图片描述

文章目录

    • 摘要
    • 描述
    • 题解答案
    • 题解代码分析
    • 示例测试及结果
    • 时间复杂度
    • 空间复杂度
    • 总结

摘要

在这篇文章中,我们将深入探讨LeetCode第252题“会议室”的问题,提供一个用Swift编写的解决方案,并结合实际场景进行分析。通过这篇文章,你将了解如何判断一个人是否可以参加所有会议,以及相关的时间和空间复杂度分析。

描述

问题描述:给定一个包含多个会议时间间隔的数组,每个间隔由开始时间和结束时间组成,判断一个人是否可以参加所有的会议。

示例1

输入:[[0,30],[5,10],[15,20]]
输出:false

示例2

输入:[[7,10],[2,4]]
输出:true

题解答案

要判断一个人是否可以参加所有会议,关键在于检查会议时间是否有重叠。具体步骤如下:

  1. 排序:首先,根据会议的开始时间对所有会议进行排序。
  2. 检查重叠:然后,遍历排序后的会议,检查当前会议的开始时间是否早于前一个会议的结束时间。如果是,则说明有重叠,返回false

题解代码分析

以下是用Swift实现的解决方案:

func canAttendMeetings(_ intervals: [[Int]]) -> Bool {guard intervals.count > 1 else {return true}let sortedIntervals = intervals.sorted { $0[0] < $1[0] }for i in 1..<sortedIntervals.count {if sortedIntervals[i][0] < sortedIntervals[i - 1][1] {return false}}return true
}

代码分析

  • 边界检查:如果会议数量少于2个,直接返回true,因为一个会议或没有会议都不存在时间冲突的问题。
  • 排序:使用sorted方法根据每个会议的开始时间对数组进行排序。
  • 遍历检查:从第二个会议开始,检查当前会议的开始时间是否小于前一个会议的结束时间。如果是,说明时间有重叠,返回false

示例测试及结果

让我们通过几个测试用例来验证上述函数的正确性:

let meetings1 = [[0,30],[5,10],[15,20]]
print(canAttendMeetings(meetings1)) // 输出:falselet meetings2 = [[7,10],[2,4]]
print(canAttendMeetings(meetings2)) // 输出:truelet meetings3 = [[1,5],[5,10],[10,15]]
print(canAttendMeetings(meetings3)) // 输出:true

结果分析

  • 测试用例1:第一个会议和第二个会议时间重叠,因此返回false
  • 测试用例2:所有会议时间无重叠,因此返回true
  • 测试用例3:会议时间首尾相接,但不重叠,因此返回true

时间复杂度

  • 排序:对会议数组进行排序的时间复杂度为O(n log n),其中n是会议的数量。
  • 遍历检查:遍历排序后的数组进行检查的时间复杂度为O(n)。

因此,总的时间复杂度为O(n log n)。

空间复杂度

如果排序是就地进行的,空间复杂度为O(1)。否则,排序可能需要O(n)的额外空间。

总结

通过对会议时间进行排序并检查相邻会议时间是否重叠,我们可以高效地判断一个人是否可以参加所有会议。这种方法在处理日程安排冲突等实际场景中非常实用。

http://www.dtcms.com/a/602921.html

相关文章:

  • HLD3370AL HLD5070AL HLD9070AL HLD12070AL低压差线性稳压器70V高压防护聚能芯半导体智芯原厂技术支持
  • 111、sqlserver 表A有1亿条数据,表中每个不同值的字段B大约有100条数据,给B字段建索引和不建索引查询时性能相差多少倍?并进行分析
  • 官方网站建设专家磐石网络电子商务网站建设与维护课件
  • C++ 中的栈(Stack)数据结构与堆的区别与内存布局(Stack vs Heap)
  • 设计好网站苏州网站制作电话
  • 建材做网销哪个网站好怎么做企业网站
  • JAVA后端动态代理复习
  • 网站菜单怎么做品牌推广策划
  • thinkphp 网站管理科技网站哪个好
  • C语言编译软件使用教程 | 完整的C语言编译工具介绍与使用技巧
  • [AI tradingOS] AI自动交易器 | 绩效追踪与日志
  • PcVue X 工控——工厂数字化转型与落地巡回研讨会圆满举行
  • 成都哪家做网站比较好旅游网络营销的特点有
  • 青岛社保网站官网登录上海公共招聘平台
  • 计网期末复习--选择题
  • 深入理解 Linux(7) 命令与动态库:从文件操作到程序链接的实践指南
  • 做海外购网站免费的设计网站有哪些
  • 做网站内嵌地图福州建设工程协会网站查询
  • 易语言程序反编译 | 了解易语言反编译的技术与应用
  • 用网站源码怎么做网站腾讯云网站模板
  • 做芯片代理哪个网站推广产品研发
  • 在 MySQL 中使用 `REPLACE` 函数
  • 网站建设陕西wordpress is search
  • 怎么在微信做企业网站东莞建筑设计院排名
  • 仓颉三方库开发实战:技术博客_source_map_js实现详解
  • 建站设计做英文网站用目录还是子域名
  • 网站建设谈客户说什么龙岩兼职招聘最新发布
  • 上海网站建设服务多少钱广西 网站建设
  • 铜仁市城乡住房与建设局网站陕西省两学一做网站
  • 网站商城建设公司网站开发实用技术 代码