zoukankan      html  css  js  c++  java
  • 计算直方图中最大矩形面积

    题目是计算直方图中的最大矩形面积,下面是我的做法,我在网上也看到有人说可以通过栈的方式来解决,因为时间问题,并没有马上尝试,下回有时间在尝试下吧!!

    还有这题有变式:计算矩阵中最大的矩形面积,其中矩阵中元素只能为1和0,代码下次补发吧!!

    代码如下:

    #include<iostream>
    using namespace std;

    int maxSquare(const int pos,const int n,const int height[])
    {

    if(n==1)
    return height[0];

    int square=0;
    for(int i=pos;i<n;i++)
    {
    int count=1,temp_square=0;
    int j=i-1;
    while(j>=0)
    {
    if(height[j--]>=height[i])
    count++;
    else
    break;
    }
    j=i+1;
    while(j<n)
    {
    if(height[j++]>=height[i])
    count++;
    else
    break;
    }
    temp_square=count*height[i];

    if(temp_square>square)
    square=temp_square;
    }
    return square;
    }

    int main()
    {

    int square,n,temp;
    int height[100000];
    cin>>n;
    for(int i=0;i<n;i++)
    {
    cin>>temp;
    height[i]=temp;
    }
    square=maxSquare(0,n,height);
    cout<<square<<endl;
    return 0;
    }

  • 相关阅读:
    POJ 2723 Get Luffy Out(2-SAT)
    ZOJ 3613 Wormhole Transport
    HDU 4085 Peach Blossom Spring
    NBUT 1221 Intermediary
    NBUT 1223 Friends number
    NBUT 1220 SPY
    NBUT 1218 You are my brother
    PAT 1131. Subway Map (30)
    ZSTU OJ 4273 玩具
    ZSTU OJ 4272 最佳淘汰算法
  • 原文地址:https://www.cnblogs.com/romantic-Right/p/4873150.html
Copyright © 2011-2022 走看看