leetcode 84:柱狀圖中最大的矩形
阿新 • • 發佈:2018-12-14
每次以第i個值為高的最大值,然後取最大值
以第i個值為高的最大值的計算: [i]後面的值大於它時 最大值加上一個[i],小於它時跳出,它前面的值做同樣的處理
想法簡單,時間複雜度比較高
int largestRectangleArea(std::vector<int>& heights) { if(heights.size()==0) return 0; int max=0; for(int i=0;i<heights.size();i++){ int c=heights[i]; for(int j=i+1;j<heights.size();j++){ if(heights[i]>heights[j]) break; else if(heights[i]<=heights[j]) c=c+heights[i]; } for(int j=i-1;j>=0;j--){ if(heights[i]>heights[j]) break; else if(heights[i]<=heights[j]) c=c+heights[i]; } if(c>max) max=c; } return max; }