ETH官方钱包

前往
大廳
主題

LeetCode - 1395. Count Number of Teams 解題心得

Not In My Back Yard | 2024-09-02 12:00:28 | 巴幣 0 | 人氣 25

題目連結:


題目意譯:
現在有 n 位士兵排成一列。每一位士兵被指派一個獨一無二的評分值。

你需要根據下列規則來從士兵們選出一個有 3 位士兵的隊伍:
    選出 3 位索引值分別為 i 、 j 和 k 的士兵,而評分值分別為 rating[i] 、 rating[j] 和 rating[k]。
    如果 rating[i] < rating[j] < rating[k] 或是 rating[i] > rating[j] > rating[k] 成立,其中 0 ≦ i < j < k < n,則該隊伍合法。

回傳你可以形成的合法隊伍數。每一位士兵可以同時在多個隊伍之中。

限制:
n == rating.length
3 ≦ n ≦ 1000
1 ≦ rating[i] ≦ 10 ^ 5
rating 中所有整數彼此相異。



範例測資:
範例 1:
輸入: rating = [2,5,3,4,1]
輸出: 3
解釋: 我們可以形成這三個合法隊伍。(2,3,4), (5,4,1), (5,3,1)。

範例 2:
輸入: rating = [2,1,3]
輸出: 0
解釋: 我們無法形成任何合法隊伍。

範例 3:
輸入: rating = [1,2,3,4]
輸出: 4


解題思維:
這種題目類似,我們可以利用動態規劃(Dynamic Programming)來解出本題。遞迴式也與該題類似,只是不需要「公差」的條件,只需要差值都是正的或是都是負的即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作