暑假刷题整理

之前刷了接近两个月的Leetcode,确切的说是59天,恰逢期末考试加上回家杂七杂八的耽搁了这么久,暑假之余便决定好好刷一下,题目不限于LeetCode,争取每一道题写的尽可能的详细,再搞懂的同时让朋友们也好理解。

由于一道题发一篇文章一点麻烦,所以就都放在这篇文章里了,下面我会给出题目地址以及汇总,方便大家查看。

LeetCode

1.218. 天际线问题

ACWing

1.218. 天际线问题

城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线

每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:

  • lefti 是第 i 座建筑物左边缘的 x 坐标。
  • righti 是第 i 座建筑物右边缘的 x 坐标。
  • heighti 是第 i 座建筑物的高度。

天际线 应该表示为由 “关键点” 组成的列表,格式 [[x1,y1],[x2,y2],…] ,并按 x 坐标 进行 排序关键点是水平线段的左端点。列表中最后一个点是最右侧建筑物的终点,y 坐标始终为 0 ,仅用于标记天际线的终点。此外,任何两个相邻建筑物之间的地面都应被视为天际线轮廓的一部分。

注意:输出天际线中不得有连续的相同高度的水平线。例如 […[2 3], [4 5], [7 5], [11 5], [12 7]…] 是不正确的答案;三条高度为 5 的线应该在最终输出中合并为一个:[…[2 3], [4 5], [12 7], …]

示例 1:

输入:buildings = [[2,9,10],[3,7,15],[5,12,12],[15,20,10],[19,24,8]]
输出:[[2,10],[3,15],[7,12],[12,0],[15,10],[20,8],[24,0]]
解释:
图 A 显示输入的所有建筑物的位置和高度,
图 B 显示由这些建筑物形成的天际线。图 B 中的红点表示输出列表中的关键点。

示例 2:

输入:buildings = [[0,2,3],[2,5,3]]
输出:[[0,3],[5,0]]

提示:

  • 1 <= buildings.length <= 104
  • 0 <= lefti < righti <= 231 - 1
  • 1 <= heighti <= 231 - 1
  • buildings 按 lefti 非递减排序

题解:


   转载规则


《暑假刷题整理》 Tyzhao 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
使用Java开发一个记事本 使用Java开发一个记事本
概述:大二下的Java课程设计,仿的Windows记事本,使用Java Swing组件开发。 重要的: 新建、打开、保存、另存为、退出询问 剪切、复制、粘贴、删除 字体设置、背景色、字体颜色、编码格式 … 常用快捷键 CTRL
2021-07-17
下一篇 
【Day59】752.打开转盘锁 【Day59】752.打开转盘锁
752. 打开转盘锁你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,’0’
2021-06-25
  目录