Python | Leetcode Python题解之第218题天际线问题

题目:

题解:

class Solution:def getSkyline(self, buildings: List[List[int]]) -> List[List[int]]:buildings.sort(key=lambda bu:(bu[0],-bu[2],bu[1]))buildings.append([inf,inf,inf])heap = [[-inf,-inf,-inf]]ans = []for l,r,h in buildings:if heap[0][2] < l:topRight = heappop(heap)[2]while heap and topRight < l:if heap[0][2] > topRight:# 建筑群内有较较矮的建筑宽度比高的大,对齐进行切块top = heappop(heap)top[1], topRight = topRight, top[2]# 如果新的切块也覆盖到新建筑,不需要再放入了if topRight >= l: heappush(heap, top)if ans[-1][1] != -top[0]: ans.append([top[1], -top[0]])else: heappop(heap)if not heap: ans.append([topRight, 0])if not heap or h > -heap[0][0]: ans.append([l, h])if heap and heap[0][0] == -h and heap[0][2] < r: heap[0][2] = relse: heappush(heap, [-h,l,r])return ans[1:-1]

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

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

相关文章

开发必备基础知识【字符编码合集】

开发必备基础知识【字符编码合集】 大家在日常开发交流中会发现&#xff0c;别人那里运行的好好的文件&#xff0c;在你电脑上却无法编译&#xff0c;甚至出现一堆莫名其妙的字符&#xff0c;比如&#xff1a;&#xfffd;&#xfffd;&#xfffd; 程序中经常遇到一些关于乱码…

探索人工智能在电子商务平台与游戏发行商竞争中几种应用方式

过去 12 年来&#xff0c;电脑和视频游戏的发行策略发生了巨大变化。数字游戏的销量首次超过实体游戏的销量 在20132020 年的封锁进一步加速了这一趋势。例如&#xff0c;在意大利&#xff0c;封锁的第一周导致数字游戏下载量 暴涨174.9%. 展望未来&#xff0c;市场有望继续增…

着急,为啥AI叫好不叫座啊?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 李彦宏在2024世界人工智能大会上说&#xff1a; 没有应用&#xff0c;光有基础模型&#xff0c;不管是开源还是闭源都一文不值&#xff0c;所以我从去年下半年开始讲&#xff0c;大家不要卷模型了&#xff0c;要去…

【AI应用探讨】—多层感知机应用场景

目录 一、计算机视觉 二、自然语言处理 三、推荐系统 四、金融风控 五、医疗健康 六、工业制造 七、其他领域 一、计算机视觉 在计算机视觉领域&#xff0c;多层感知机&#xff08;MLP&#xff09;因其强大的非线性建模能力而被广泛应用于各种图像处理任务中。具体应用…

SessionStorage和loacalStorage区别

一、SessionStorage 1.生命周期 SessionStorage中存储的数据在当前会话期间有效&#xff0c;即当页面关闭时数据将被清除。 2.作用域 SessionStorage中的数据仅在当前标签页或窗口中有效&#xff0c;不同标签页或窗口之间无法共享数据。 3.存储容量 SessionStorage的存储…

java面试-java基础(上)

文章目录 一、什么是Java&#xff1f;特点&#xff1f;二、什么是JVM、JDK、JRE&#xff1f;三、java跨平台实现原理四、java数据类型有哪些?五、char能不能存一个中文汉字?六、存在数字i加1小于i或者i减1小于i?七、什么是自动类型转换与强制类型转换?八、什么是装/拆箱&am…

数学不好能搞人工智能吗?

很遗憾&#xff0c;不能。 人工智能&#xff08;AI&#xff09;实际上是一个将数学、算法理论和工程实践紧密结合的领域。AI 扒开来看就是算法&#xff0c;也就是数学、概率论、统计学、各种数学理论的体现。 新的时代&#xff0c;程序员想要跨入 AI 之门&#xff0c;只要稍微…

13 - Python网络编程入门

网络编程入门 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称&#xff0c;组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数&#xff0c;而计算机网络也可以称得上是一个“复…

Springweb详解

Springweb详解 一.springweb介绍 1.1 SpringWEB 特点  SpringWEB 是 spring 家族原生产品&#xff0c;与 IOC 容器等基础设施无缝对接.  基于原生的 Servlet&#xff0c;提供了一个前端控制器 DispatcherServlet &#xff0c;开发者 无须额外开发控制器对象.  可以自…

【SQL】聚簇索引与⾮聚簇索引的区别

聚簇索引&#xff08;Clustered Index&#xff09;和非聚簇索引&#xff08;Non-Clustered Index&#xff09;是数据库索引的两种主要类型&#xff0c;它们在数据存储和访问方式上有显著区别。 聚簇索引 数据存储顺序&#xff1a;聚簇索引将数据行按照索引键的顺序进行存储。…

VSCode打开其它IDE项目注释显示乱码的解决方法

问题描述&#xff1a;VSCode打开Visual Studio&#xff08;或其它IDE&#xff09;工程&#xff0c;注释乱码&#xff0c;如下图所示&#xff1a; 解决方法&#xff1a;点击VSCode右下角的UTF-8&#xff0c;根据提示点击“通过编码重新打开”&#xff0c;再选择GB2312&#xff0…

R语言数据分析案例42-基于时间序列模型对股票预测分析和研究

一、研究背景和意义 随着全球经济的不断发展和数字化转型的加速推进&#xff0c;科技公司在全球市场中扮演着日益重要的角色。其中&#xff0c;中国的阿里巴巴集团作为全球最大的电子商务公司之一&#xff0c;其业务范围覆盖电子商务、云计算、金融科技等多个领域。由于其在中…

AI革命:RAG技术引领未来智能

AI革命:RAG技术引领未来智能 在人工智能的浪潮中,一种名为RAG(Retrieval-Augmented Generation)的技术正在悄然改变我们的世界。这种技术通过整合外部知识库,极大地增强了大型语言模型(LLM)的性能,为智能助手、聊天机器人等应用带来了革命性的提升。 1 突破性的RAG技…

【问题记录】Jenkins Pipeline读取变量的各种方法

方法一 输出docker image镜像标签给IMAGE_TAG def IMAGE_TAG sh(script: docker images | grep ${SERVER_NAME} | grep $NAME_SPACE | awk {print $2}|grep ${BUILD_NUMBER}, returnStdout: true) 另外&#xff0c;如果想输出docker image命令执行结果给IMAGE_TAG def IMAG…

【python】PyQt5可视化开发,如何设计鼠标显示的形状?

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

通信施工安全员B类测试题含答案

1.全国人民代表大会常务委员会关于修改<中华人民共和国安全生产法>的决定》由中华人民共和国第十二届全国人民代表大会常务委员会第十次会议通过&#xff0c;自( )起施行。 A、2002年11月1日 B、2014年8月31日C、2014年12月1日(正确答案) D、2015年1月01日 2.生产经营单…

JMeter:循环控制器While Controller的用法小结

前言 在之前的博文“JMeter案例优化&#xff1a;测试执行结束后&#xff0c;实现tearDown的几种方式”中&#xff0c;尝试了JMeter的循环控制器While Controller&#xff0c;发现还有点小复杂&#xff0c;将学习过程记录下来&#xff0c;免得遗忘。 注&#xff1a;我使用的是…

《C++20设计模式》外观模式

文章目录 一、前言二、实现1、UML类图2、实现 一、前言 一句话总结外观模式&#xff1a;简化接口&#xff0c;或者简化流程。&#x1f642; 相关代码可以在这里&#xff0c;如有帮助给个star&#xff01;AidenYuanDev/design_patterns_in_modern_Cpp_20 二、实现 原来需要很…

动手学深度学习(Pytorch版)代码实践 -循环神经网络-54~55循环神经网络的从零开始实现和简洁实现

54循环神经网络的从零开始实现 import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l import matplotlib.pyplot as plt import liliPytorch as lp# 读取H.G.Wells的时光机器数据集 batch_size, num_steps 32, …

多特征线性回归

目录 一、多特征符号意义说明&#xff1a;二、多特征模型表示&#xff1a;三、Numpy向量表示、内积计算&#xff1a;1.向量表示&#xff1a;2.内积计算&#xff1a; 四、多元线性回归梯度下降算法&#xff1a; 一、多特征符号意义说明&#xff1a; x下标j&#xff1a;表示第j个…