📣 独立日限时特惠: VIP通行证立减$68
12
返回列表 发新帖
楼主: xiongyc
跳转到指定楼层
上一主题 下一主题
收起左侧

脸熟店面求加米

🔗
attar 2020-9-29 04:47:46 | 只看该作者
全局:
亚特兰蒂斯 发表于 2019-6-3 11:29
正解。单调栈。贴个代码:
        Stack stack = new Stack();                int i = 0;

不知道原题问的“能看到海的下标”,是指只要这个楼房有能看到海的房间,就算true了吗?

@亚特兰蒂斯 2 这个解还是有问题的。
第i+1的房子,可能比前面的矮,但是如果比前面的都宽,也是能看到海的
你这里只考虑高度,没考虑宽度





补充内容 (2020-10-2 12:41):
我理解错了,以为楼房是(x1, x2, hight)
原来这题只是给楼房高度的数组,那就从右向左扫描即可。记录当前的最大值。比这个小的就看不到,不这个大的就能看到,同时更新最大值,
回复

使用道具 举报

🔗
attar 2020-9-29 05:05:11 | 只看该作者
全局:
Optimus 发表于 2019-5-31 07:25
谢楼主分享。第一题leetcode上也有,skyline problem。祝楼主顺利。

跟skyline也不同

skyline的楼房没有数组顺序的先后关系,所以可以排序后,然后在x轴上从小到大用类似求overlap的算法。
这里有先后关系吧。先输的楼房在前面,即便很窄很矮,也是能看到海的。

感觉就是从左到右扫描,维护一个skyline那样的阴影(多边形)面积。新进来一个数组,看有没有完全被这个阴影挡住。完全挡住就忽略,否则加入list, 并更正skyline.
但skyline的求法,应该比利口的简单,因为前i个楼已经算过了,只要算i+1加进去后什么样。








回复

使用道具 举报

🔗
attar 2020-10-3 04:42:49 | 只看该作者
全局:
attar 发表于 2020-9-28 13:05
跟skyline也不同

skyline的楼房没有数组顺序的先后关系,所以可以排序后,然后在x轴上从小到大用类似 ...

我理解错了,以为楼房是(x1, x2, hight)。 =》skyline的变型,但不完全是。这个就比较难。

这题只是给楼房高度的数组,那就从右向左扫描即可。记录当前的最大值。比这个小的就看不到,不这个大的就能看到,同时更新最大值。这个是easy难度

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表