【发布时间】:2012-06-13 13:21:05
【问题描述】:
我一直在尝试制定一种算法来解决问题。在这个问题中,我们有一张包含一些建筑物的照片。将照片分成 n 个垂直区域(称为碎片),并给出每个碎片中建筑物的高度。
一栋建筑可以跨越多个连续的部分,但每个部分只能包含一个可见的建筑,或者根本不包含任何建筑。我们需要找到最少的建筑物数量。
例如 给定,
3(件数)
1 2 3(高度)ans = 3
3
1 2 1 答案 = 2
6
1 2 3 1 2 3 ans = 5(一个数字有助于显示重叠。)。
虽然我觉得我明白了,但我无法得到一个可靠的算法。有任何想法吗?
【问题讨论】:
-
你能解释一下第二个和第三个例子吗?我一定是错过了什么......
-
这是作业吗?听起来对我来说是这样。
-
如果建筑物被“绘制”在网格上,每一行代表一个特定高度,而一列代表一个“片段”——这对可视化/规则有帮助吗?的方法?另外,清理初始数据描述:)
-
这里有一个提示:只要输入的高度为 2 或 1,高度为 3 的建筑物就会强制结束。由于您想要最少的数量,因此没有理由让它更快结束。保留尚未结束的建筑物看起来像是一堆工作......
-
@frodo,你能在你所说的例子中多解释一下吗?
标签: algorithm