classSolution { public: stack<pair<int,int>> ans; int sum=0,m=0; intlargestRectangleArea(vector<int>& heights){ vector<int> a; int sum=0; heights.insert(heights.begin(),0); heights.push_back(0); //4 for(int i=0;i<heights.size();i++){ while(!a.empty() && heights[i]<heights[a.back()]){ int cur = a.back(); //2 a.pop_back(); int left = cur; //2 int right = i-1; //3 int s = (right-left+1) * heights[cur]; sum = max(sum,s); } a.push_back(i); } return sum; } };