LeetCode 962. 最大宽度坡(单调栈)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 962. 最大宽度坡(单调栈)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個整數數組 A,坡是元組 (i, j),其中 i < j 且 A[i] <= A[j]。這樣的坡的寬度為 j - i。
找出 A 中的坡的最大寬度,如果不存在,返回 0 。
示例 1: 輸入:[6,0,8,2,1,5] 輸出:4 解釋: 最大寬度的坡為 (i, j) = (1, 5): A[1] = 0 且 A[5] = 5.示例 2: 輸入:[9,8,1,0,1,9,4,0,4,1] 輸出:7 解釋: 最大寬度的坡為 (i, j) = (2, 9): A[2] = 1 且 A[9] = 1.提示: 2 <= A.length <= 50000 0 <= A[i] <= 50000來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/maximum-width-ramp
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
[9,8,1,0,1,9,4,0,4,1] class Solution { //錯誤解 public:int maxWidthRamp(vector<int>& A) {deque<int> q;int maxlen = 0;for(int i = 0; i < A.size(); ++i){while(!q.empty() && A[q.back()] > A[i])q.pop_back();if(!q.empty())maxlen = max(maxlen, i-q.front());q.push_back(i);}return maxlen;} };- 正序,單調遞減棧(存儲下標)(如果有大的,不需要入棧,因為前面的比它小,寬度更大)
- 逆序遍歷原數組,與棧頂比較
136 ms 28.1 MB
總結
以上是生活随笔為你收集整理的LeetCode 962. 最大宽度坡(单调栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1141.
- 下一篇: LeetCode 97. 交错字符串(D