鞍点

鞍点

简单

简介

你打算在你家附近的树林里建一座树屋,这样就能看日出日落了。

你从当地一家测绘公司拿到了数据,这些数据显示了地图上每个矩形区域内每棵树的高度。 你需要分析地图上的每个网格,为你的树屋找出合适的好树。

一棵好树要同时满足两点:

  • 比东西两侧的每一棵树都高,这样你就能获得观赏日出和日落的最佳视野。
  • 比南北两侧的每一棵树都矮,从而尽量减少攀爬的高度。

说明

你的任务是找出所有可能建造树屋的潜在树木。

数据公司以网格的形式提供数据,网格显示树木的高度。网格的行代表东西方向,列代表南北方向。

一棵合格的树,在它所在的行中是最大的,同时在它所在的列中是最小的。

一个网格可能一棵合适的树都没有,也可能有一棵,甚至有好几棵。

下面这个网格恰好有一棵候选树。

    1  2  3  4
  |-----------
1 | 9  8  7  8
2 | 5  3  2  4  <--- potential tree house at row 2, column 1, for tree with height 5
3 | 6  6  7  1
  • 第 2 行的值是 5、3、2 和 4。其中最大的值是 5。
  • 第 1 列的值是 9、5 和 6。其中最小的值是 5。

所以 [2, 1] 这个点(行:2,列:1)是建造树屋的绝佳位置。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
CFML Exercism

准备好开始 鞍点 了吗?

注册 Exercism,借助 51 个练习 和真人导师指导,学习并掌握 CFML,全部免费。