leetcode 84柱状图中最大的矩形,利用单调栈求解l

利用单调了栈求解leetcode 84柱状图中最大的矩形

image
image

利用单调递增栈的方式来实现,计算发生在每次弹出栈顶的操作过程中

单调递增栈的操作步骤

1。如果栈为空或者栈顶元素比入栈小 该元素直接入栈

2。其他 弹出栈顶直至栈顶元素比当前入栈元素小为止,该元素入栈

伪代码:

  if  stack == NULL or  top(stack)< item:

        push(item);

  else :

        while(top(stack)>item):

              top = pop(stack)

        push(item);

1. (2,1)入栈,此时栈里内容为 (2,1)第一个数字代表内容第二个数字代表该数字在Numbers[i]当中的序号 这里采用1-起始,$为栈底 最右侧为栈顶

2. 扫描到第二个数字1,(1,2)入栈。因为1小于栈顶元素2,所以弹出栈顶 让(1,2)入栈,此时开始运算弹出元素的面积这里是序号为1,值为2的元素计算面积S1

S1= n[1]*(入栈序号-该元素前一个序号-1)  = n[1]*(2-0-1)=2*1 =2 

此时栈内容为 $,(1,2)

3.扫描到第三个数字5,(5,3)入栈 ,因为 5大于栈顶。

此时栈内容为: $,(1,2),(5,3)

4.扫描第4个数字6 ,(6,4)入栈 ,因为 6大于栈顶5。

此时栈内容为: $,(1,2),(5,3),(6,4)

5.扫描第5个数字2 ,(2,5)入栈 ,因为 2小于栈顶5。

弹栈(6,4)计算S4

S4= n[1](入栈序号-该元素前一个序号-1) = n[4](5-3-1)=6*1 =6

弹栈(5,3)计算S3

S3= n[1](入栈序号-该元素前一个序号-1) = n[3](5-2-1)=5*2 =10

此时栈内容为: $,(1,2), (2,5)

6扫描第6个数字3 入栈 此时栈内容为: $,(1,2),(2,5),(3,6)

弹栈(3,6) 计算S6

S6= n[6](入栈序号-该元素前一个序号-1) = n[6](7-5-1)=3*1 =3

弹栈(2,5) 计算S5

S5= n[5](入栈序号-该元素前一个序号-1) = n[5](7-2-1)=2*4 =8

此时 没有入栈入栈序号为7

此时栈内容为: $,(1,2)

弹栈 (1,2) 计算S2

S2= n[2](入栈序号-该元素前一个序号-1) = n[2](7-0-1)=1*6 =6

最大值

max = 10

总程序的伪代码:

‘for  item in  numbers:

      if  stack == NULL or  top(stack)< item:

            push(item);

      else :

            while(top(stack)>item):

                  top = pop(stack)’

    计算S[top] 的面积

      push(item);

end for

while(len(stack)>0):

        top = pop(stack)

        计算S[top] 的面积

max_area  =max{S[i] ; i=0 to N }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容