leetcode 1395 統計作戰單位數

2021-10-09 19:45:26 字數 1592 閱讀 9650

統計作戰單位數

n 名士兵站成一排。每個士兵都有乙個 獨一無二 的評分 rating 。

每 3 個士兵可以組成乙個作戰單位,分組規則如下:

從隊伍中選出下標分別為 i、j、k 的 3 名士兵,他們的評分分別為 rating[i]、rating[j]、rating[k]

作戰單位需滿足: rating[i] < rating[j] < rating[k] 或者 rating[i] > rating[j] > rating[k] ,其中 0 <= i < j < k < n

請你返回按上述條件可以組建的作戰單位數量。每個士兵都可以是多個作戰單位的一部分。

示例 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

n == rating.length

1 <= n <= 200

1 <= rating[i] <= 10^5

思路:因為子陣列可以是遞增,也可以是遞減,又因為本題目的資料估摸不大,所以可以使用暴力搜尋。

思路2:

組合數學的思想:掃面一遍,計數j的左邊比我小的,有l個,計數j的右邊比我大的有r個。遞增情況下,總共有l * r個

遞減情況下,左邊有 j - l 個比我大的。右邊有 n-1 - j - r 個比我小的(n是個數所以要先-1)

蘇有情況 = 遞增 + 遞減

1395 統計作戰單位數

n名士兵站成一排。每個士兵都有乙個 獨一無二 的評分rating。每 3 個士兵可以組成乙個作戰單位,分組規則如下 請你返回按上述條件可以組建的作戰單位數量。每個士兵都可以是多個作戰單位的一部分。示例 1 輸入 rating 2,5,3,4,1 輸出 3 解釋 我們可以組建三個作戰單位 2,3,4 ...

LeetCode 統計重複個數

q 由 n 個連線的字串 s 組成字串 s,記作 s s,n 例如,abc 3 abcabcabc 如果我們可以從 s2 中刪除某些字元使其變為 s1,則稱字串 s1 可以從字串 s2 獲得。例如,根據定義,abc 可以從 abdbec 獲得,但不能從 acbbe 獲得。現在給你兩個非空字串 s1 ...

LeetCode191 統計詞頻

寫乙個 bash 指令碼以統計乙個文字檔案 words.txt 中每個單詞出現的頻率。為了簡單起見,你可以假設 words.txt只包括小寫字母和 每個單詞只由小寫字母組成。單詞間由乙個或多個空格字元分隔。示例 假設 words.txt 內容如下 dayis sunny the thethe sun...