我试图在汇编中编写一个程序,它采用x和y坐标,x作为建筑物的位置,y作为建筑物的高度。
现在我要去看最远的那栋楼。
例如:
algorithm - 检查看得最远的建筑物-LMLPHP
正如你在例子中看到的,8号楼看到4米,7号楼看到2米,9号楼看到9米,这是最远的距离,所以我现在要做的就是打印9号楼看到9米,这是最远的距离。
我好像想不出一个算法来做。

最佳答案

跟踪到目前为止的最大高度建筑物及其位置,以及“当前最佳解决方案”。
当你遇到新建筑时:
如果它不高于当前最大值,它将永远看不到当前最大值(因为当前最大值看到,直到它,并将看到远离它)。
如果它高于当前最大值——新建筑与先前最高建筑之间的间隔是一个“最佳”的候选者,如果它比迄今为止最好的解决方案更好。
当你到达起点时,给出最好的解决方案。
示例(基于您的示例):

10: highest is 10, so far best is null
9: found new highest, so far best is 10 with distance 1.
8: no new highest, 10 is best.
7: no new highest
...
0: update "best", 9 is the new best with distance of 9.

Yield: 9 as seeing furthest.

关于algorithm - 检查看得最远的建筑物,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43901698/

10-10 00:58