CSP认证201312-3最大的矩形[C++题解]:枚举
生活随笔
收集整理的這篇文章主要介紹了
CSP认证201312-3最大的矩形[C++题解]:枚举
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目解答
- 題目鏈接
題目解答
來源:acwing
分析:面積最大,下邊界一定是直方圖的最下邊,上邊界一定和某個長條高度重合。這樣枚舉所有的高度,同時看左右寬度能夠到哪兒,這樣就可以通過長*寬算出來面積,然后取一個最大的即可。
時間復雜度O(n2)O(n^2)O(n2)
ac代碼
#include<bits/stdc++.h> using namespace std; const int N = 1010;int n; int h[N]; //高度int main(){cin >> n;for(int i =1; i<= n; i++) cin >>h[i];int res = 0;for(int i =1; i<=n; i++){ //枚舉每個高度int l = i, r = i;while(l >= 1 && h[l] >= h[i]) l--;while(r <= n && h[r] >= h[i]) r++;res = max(res, h[i] *(r- l -1)); //取最大的面積}cout << res << endl; }題目鏈接
https://www.acwing.com/problem/content/3197/
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的CSP认证201312-3最大的矩形[C++题解]:枚举的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSP认证201312-2 ISBN号码
- 下一篇: CSP认证201312-4有趣的数[C+