907 子陣列的最小值之和

2021-10-18 06:56:03 字數 733 閱讀 1367

題目描述:

給定乙個整數陣列 arr,找到 min(b) 的總和,其中 b 的範圍為 arr 的每個(連續)子陣列。

由於答案可能很大,因此 返回答案模 10^9 + 7 。

示例 1:

輸入:arr = [3,1,2,4]

輸出:17

解釋:子陣列為 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。

最小值為 3,1,2,4,1,1,2,1,1,1,和為 17。

示例 2:

輸入:arr = [11,81,94,43,3]

輸出:444

1 <= arr.length <= 3 * 104

1 <= arr[i] <= 3 * 104

方法1:

(1)單調棧;

(2)每次找出區域性最小值,計算出兩端大於等於該值的數的長度,則可以組成的組合的數量是兩端長度的乘積,每組的最小值都是當前區域性最小值;

class

solution

st.push

(i);

//壓入新的值

} res%

=1000000007

;return res;}}

;

907 子陣列的最小值之和

碰到leetcode907,子陣列的最小值之和,用python3按自己思路寫死都過不去,怎麼都超時,這是python3 class solution def sumsubarraymins self,a type a list int rtype int res 0 length len a for...

LeetCode 907 子陣列的最小值之和

給定乙個整數陣列a,找到min b 的總和,其中b的範圍為a的每個 連續 子陣列。由於答案可能很大,因此返回答案模10 9 7。示例 輸入 3,1,2,4 輸出 17 解釋 子陣列為 3 1 2 4 3,1 1,2 2,4 3,1,2 1,2,4 3,1,2,4 最小值為 3,1,2,4,1,1,2...

LeetCode 907 子陣列的最小值之和

這裡是題目描述 leetcode 907.子陣列的最小值之和 本題給定乙個整數陣列a,求a的所有 連續 子陣列的最小值的和,直觀上可以用暴力法 列出a的所有子陣列,分別求出這些子陣列的最小值,再分別將這些最小值相加。但是通過分析時間複雜度 列舉出所有子陣列需要o n2 的時間複雜度,求乙個子陣列的最...