#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int fieldsum(vector<int>& v){
int sum = 0;
// 放入最大的值
v.push_back(INT_MAX);
stack<int> s;
for(int i = 0; i<v.size(); i++){
cout<<s.top()<<endl;
while(!s.empty()&&v[i]>v[s.top()]){
int x = s.top();
s.pop();
sum+=(i-x-1);
}
s.push(i);
}
return sum;
}
int main(){
int a[6] = {8, 3, 2, 7, 1, 4};
vector<int> v;
for(int i=0;i<6;i++)
v.push_back(a[i]);
cout<<fieldsum(v)<<endl;
return 0;
}
最大视野 (单调栈)
最新推荐文章于 2021-05-28 19:18:51 发布