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

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.lryc.cn/news/392799.html

相关文章:

  • 使用Spring Boot构建RESTful API
  • Spark快速大数据分析PDF下载读书分享推荐
  • Centos7离线安装mysql-5.7.44bundle包
  • ROS melodic版本卸载---Ubuntu18.04
  • Java面试之Java多线程常见面试题
  • Java [ 基础 ] Java面向对象编程 (OOP) ✨
  • 敏捷开发笔记(第9章节)--开放-封闭原则(OCP)
  • 苹果电脑清理app垃圾高效清理,无需专业知识
  • 【算法】(C语言):快速排序(递归)、归并排序(递归)、希尔排序
  • 模型驱动开发(Model-Driven Development,MDD):提高软件开发效率与一致性的利器
  • 记录discuz修改用户的主题出售价格
  • WGAN(Wassertein GAN)
  • Maven基本使用
  • 在Linux系统中配置GitHub的SSH公钥
  • 小酌消烦暑|人间正清欢
  • C语言结构体的相关知识
  • RabbitMQ入门教程(精细版二带图)
  • IO、零拷贝、多路复用、connection、池化
  • Lua 错误处理
  • 二刷力扣——单调栈
  • elementPlus-vue3-ts表格单选和双选实现方式
  • Linux系统中卸载GitLab
  • 基于STM32F407ZG的FreeRTOS移植
  • 【IT领域新生必看】Java编程中的神奇对比:深入理解`equals`与`==`的区别
  • WEBHTTP
  • nodejs 获取客服端ip,以及获取ip一直都是127.0.0.1的问题
  • 微软与OpenAI/谷歌与三星的AI交易受欧盟重点关注
  • 微信小程序毕业设计-学生实习与就业管理系统项目开发实战(附源码+论文)
  • spring boot 接口参数解密和返回值加密
  • C语言自定义类型——联合体、枚举