鞍點

鞍點

中等

簡介

你打算在住家附近的樹林裡蓋一座樹屋,這樣就能欣賞日出和日落。

你從當地一家測量公司取得了資料,裡頭記錄了地圖上每個長方形區域中每棵樹的高度。 你需要分析地圖上的每個網格,找出適合蓋樹屋的好樹。

一棵好樹必須同時符合兩個條件:

  • 比東邊和西邊的每棵樹都高,這樣才能擁有觀賞日出和日落的最佳視野。
  • 比北邊和南邊的每棵樹都矮,以減少爬樹的力氣。

說明

你的任務是找出可以拿來蓋樹屋的潛在樹木。

資料公司提供的資料是一張張網格,顯示樹木的高度。 網格的列代表東西方向,欄代表南北方向。

合格的樹木要在自己所屬的列中最高,同時在自己的欄中最小。

一張網格可能完全沒有合適的樹木,也可能只有一棵,甚至有好幾棵。

這裡有一張網格,裡面剛好只有一棵候選的樹木。

    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 編輯 連結會在新視窗或分頁中開啟
Scala Exercism

準備好開始 鞍點 了嗎?

註冊 Exercism,透過 95 個練習 和真人引導來學習並精通 Scala,全部免費。