LeetCode 2104. 子数组范围和(单调栈)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 2104. 子数组范围和(单调栈)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一個(gè)整數(shù)數(shù)組 nums 。nums 中,子數(shù)組的 范圍 是子數(shù)組中最大元素和最小元素的差值。
返回 nums 中 所有 子數(shù)組范圍的 和 。
子數(shù)組是數(shù)組中一個(gè)連續(xù) 非空 的元素序列。
示例 1: 輸入:nums = [1,2,3] 輸出:4 解釋:nums 的 6 個(gè)子數(shù)組如下所示: [1],范圍 = 最大 - 最小 = 1 - 1 = 0 [2],范圍 = 2 - 2 = 0 [3],范圍 = 3 - 3 = 0 [1,2],范圍 = 2 - 1 = 1 [2,3],范圍 = 3 - 2 = 1 [1,2,3],范圍 = 3 - 1 = 2 所有范圍的和是 0 + 0 + 0 + 1 + 1 + 2 = 4示例 2: 輸入:nums = [1,3,3] 輸出:4 解釋:nums 的 6 個(gè)子數(shù)組如下所示: [1],范圍 = 最大 - 最小 = 1 - 1 = 0 [3],范圍 = 3 - 3 = 0 [3],范圍 = 3 - 3 = 0 [1,3],范圍 = 3 - 1 = 2 [3,3],范圍 = 3 - 3 = 0 [1,3,3],范圍 = 3 - 1 = 2 所有范圍的和是 0 + 0 + 0 + 2 + 0 + 2 = 4示例 3: 輸入:nums = [4,-2,-3,4,1] 輸出:59 解釋:nums 中所有子數(shù)組范圍的和是 59提示: 1 <= nums.length <= 1000 -10^9 <= nums[i] <= 10^9來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/sum-of-subarray-ranges
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. 解題
- 單調(diào)棧,獲取每個(gè)數(shù)字作為最大或者最小的左右極限位置
- 單獨(dú)考慮每個(gè)數(shù)字可以作為最大值或者最小值的次數(shù),到左右極限位置處的個(gè)數(shù)相乘種組合
140 ms 15.2 MB Python3
我的CSDN博客地址 https://michael.blog.csdn.net/
長(zhǎng)按或掃碼關(guān)注我的公眾號(hào)(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 2104. 子数组范围和(单调栈)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1676. 二叉树的最
- 下一篇: LeetCode LCP 34. 二叉树