LC 962. Maximum Width Ramp
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LC 962. Maximum Width Ramp相关的知识,希望对你有一定的参考价值。
?????????tor vector front eve out nbsp find fir inpu
Given an array A
of integers, a ramp is a tuple (i, j)
for which i < j
and A[i] <= A[j]
. The width of such a ramp is j - i
.
Find the maximum width of a ramp in A
. If one doesn???t exist, return 0.
Example 1:
Input: [6,0,8,2,1,5]
Output: 4
Explanation:
The maximum width ramp is achieved at (i, j) = (1, 5): A[1] = 0 and A[5] = 5.
Example 2:
Input: [9,8,1,0,1,9,4,0,4,1]
Output: 7
Explanation:
The maximum width ramp is achieved at (i, j) = (2, 9): A[2] = 1 and A[9] = 1.
Note:
2 <= A.length <= 50000
0 <= A[i] <= 50000
??????????????????O(nlog(n))???
class Solution {
public:
int maxWidthRamp(vector<int>& A) {
map<int, vector<int>> m;
for(int i=0; i<A.size(); i++) m[A[i]].push_back(i);
int ret = -1;
int prev_first = 0;
for(auto it : m){
//cout << it.first << endl;
if(ret == -1){
prev_first = it.second.front();
ret = max(ret, it.second.back() - prev_first);
}else{
prev_first = min(prev_first, it.second.front());
ret = max(ret, it.second.back() - prev_first);
}
}
return ret;
}
};
以上是关于LC 962. Maximum Width Ramp的主要内容,如果未能解决你的问题,请参考以下文章
[LC] 152. Maximum Product Subarray
LC.104. Maximum Depth of Binary Tree
[LC] 1219. Path with Maximum Gold