Skip to content

Commit dcafbfb

Browse files
authored
Create 962.Maximum-Width-Ramp.cpp
1 parent e9e58c1 commit dcafbfb

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Solution {
2+
public:
3+
int maxWidthRamp(vector<int>& nums)
4+
{
5+
vector<int>q;
6+
vector<int>idx;
7+
int result = 0;
8+
9+
for (int i=0; i<nums.size();i++)
10+
{
11+
if (q.size()==0)
12+
{
13+
q.push_back(nums[i]);
14+
idx.push_back(i);
15+
continue;
16+
}
17+
18+
if (q.size()>0 && nums[i]<q.back())
19+
{
20+
q.push_back(nums[i]);
21+
idx.push_back(i);
22+
}
23+
else
24+
{
25+
auto it = upper_bound(q.rbegin(),q.rend(),nums[i]);
26+
int k = it-q.rbegin();
27+
k = q.size()-1-k + 1;
28+
result = max(result, i-idx[k]);
29+
}
30+
}
31+
return result;
32+
}
33+
};

0 commit comments

Comments
 (0)