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

兰州网站建设与优化百度软文推广公司

兰州网站建设与优化,百度软文推广公司,滕州手机网站建设,北京建设网站公司网站Leetcode 3440. Reschedule Meetings for Maximum Free Time II 1. 解题思路2. 代码实现 题目链接#xff1a;3440. Reschedule Meetings for Maximum Free Time II 1. 解题思路 这一题某种意义上来说甚至是上一题Leetcode 3439的简化版本#xff08;关于这一题的解答可以…Leetcode 3440. Reschedule Meetings for Maximum Free Time II 1. 解题思路2. 代码实现 题目链接3440. Reschedule Meetings for Maximum Free Time II 1. 解题思路 这一题某种意义上来说甚至是上一题Leetcode 3439的简化版本关于这一题的解答可以参考拙作Leetcode 3439. Reschedule Meetings for Maximum Free Time I因为只要求 k 1 k1 k1但是差别在于可以改变会议的开始顺序。 因此我们虽然不需要考察连续 k k k个会议的持续时间但是需要考察一下在其他会议的间隔范围内是否存在某个gap大于当前会议的时间如果存在的话我们就可以直接把该会议挪过去这样就可以直接获取整段的自由时间了。 综上这一题和上一题基本实现思路就完全一致唯一的差别就在于需要多求一个其他会议区间内的最大gap时间这个我们可以通过一个segment tree来实现对应的内容网上有很多我自己也有一篇博客作为备忘经典算法Segment Tree因此这里就不过多展开了有兴趣的读者可以移步去看看。 2. 代码实现 给出python代码实现如下 class SegmentTree:def __init__(self, arr):self.length len(arr)self.tree self.build(arr)def feature_func(self, *args):return max(args)def build(self, arr):n len(arr)tree [0 for _ in range(2*n)]for i in range(n):tree[in] arr[i]for i in range(n-1, 0, -1):tree[i] self.feature_func(tree[i1], tree[(i1) | 1])return treedef update(self, idx, val):idx idx self.lengthself.tree[idx] valwhile idx 1:self.tree[idx1] self.feature_func(self.tree[idx], self.tree[idx ^ 1])idx idx1returndef query(self, lb, rb):if rb lb:return 0lb self.length rb self.lengthnodes []while lb rb:if lb 1 1:nodes.append(self.tree[lb])lb 1if rb 1 0:nodes.append(self.tree[rb])rb - 1lb lb 1rb rb 1if lb rb:nodes.append(self.tree[rb])return self.feature_func(*nodes)class Solution:def maxFreeTime(self, eventTime: int, startTime: List[int], endTime: List[int]) - int:meetings [(i, j, j-i) for i, j in zip(startTime, endTime)]n len(meetings)freeTimes [meetings[0][0]] [meetings[i1][0] - meetings[i][1] for i in range(n-1)] [eventTime - meetings[-1][1]]ans max(freeTimes)segment_tree SegmentTree(freeTimes)durations list(accumulate([x[2] for x in meetings], initial0))for i in range(n):if i 0:tot meetings[i1][0]elif i1 n:tot eventTime - meetings[i-1][1]else:tot meetings[i1][0] - meetings[i-1][1]d durations[i1] - durations[i]gap max(segment_tree.query(0, i-1), segment_tree.query(i2, n))if d gap:ans max(ans, tot-d)else:ans max(ans, tot)return ans提交代码评测得到耗时2361ms占用内存51.1MB。
http://www.w-s-a.com/news/552561/

相关文章:

  • 泰州做网站 泰公网络科技公司网站升级中html
  • 如何做授权网站网站设计心得
  • 网站排名快速上升wordpress自动标签页
  • 做的好的手机网站有哪些万网域名交易
  • 网站怎么做漂亮点做陶瓷的公司网站
  • 软件开发设计制作网站下载自己怎么做视频收费网站
  • 江苏省建设安全协会网站天津网站建设哪家公司好
  • 资源类网站怎么做的网站上线准备工作
  • 长沙专业网站建设怎么做企业建站公司服务
  • 肇庆市有限公司网站建设手机直接看的网站有哪些
  • 织梦修改网站后备份英语作文模板高中
  • 个人网站域名用什么好上海公司拍沪牌需要什么条件
  • 网站建设 保密做网站赚钱交税
  • 食品建设网站前的市场分析进出口网站贸易平台有哪些
  • php商城网站建设个人网站用什么服务器
  • 如何做好品牌网站建设方案网站开发的学习
  • 网站开发 管理方案wordpress怎么搭建微博
  • 有哪些ui的设计网站网上商城网站建设设计方案
  • iis中怎样配置网站绑定运城可以做网站的公司
  • 品牌网站建设开发价格dedecms电影网站模板
  • 网站设计外包合同帝国网站后台认证码错误
  • 网站设计公司深圳怎么免费做公司网站
  • 90设计网站几次是什么意思swipe类网站
  • 安康微网站建设网站域名使用费用
  • 网站建设执招标评分表微信代理网站模板
  • ps做网站分辨率自适应地方网站盈利
  • 免费自助小型网站专业网站建设组织
  • 猎聘网网站建设目标查看别人wordpress主题
  • 免费建设网站入驻网站备案不能更新吗
  • 个人网站制作代码西安建筑类公司