1. 程式人生 > >leetcode 84:柱狀圖中最大的矩形

leetcode 84:柱狀圖中最大的矩形

每次以第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;
}