鞍点

鞍点

中等

简介

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

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

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

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

说明

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

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

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

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

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

      ↓
      1  2  3  4
    |-----------
  1 | 9  8  7  8
→ 2 |[5] 3  2  4
  3 | 6  6  7  1
  • 第 2 行的值是 5、3、2 和 4,其中最大的是 5。
  • 第 1 列的值是 9、5 和 6,其中最小的是 5。

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

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

准备好开始 鞍点 了吗?

注册 Exercism,借助 35 个概念116 个练习 和真人导师指导,学习并掌握 Swift,全部免费。