算法分析课每周练习 Largest Rectangle in Histogram
来源:互联网 发布:美工常用72种字体打包 编辑:程序博客网 时间:2024/06/08 17:14
题目
Largest Rectangle in Histogram
Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
分析
比较容易想到O(n^2)级的算法,但这题其实有更优秀的方法
class Solution: # @param height, a list of integer # @return an integer # @good solution! def largestRectangleArea(self, height): maxArea = 0 stackHeight = [] stackIndex = [] for i in range(len(height)): if stackHeight == [] or height[i] > stackHeight[len(stackHeight)-1]: stackHeight.append(height[i]); stackIndex.append(i) elif height[i] < stackHeight[len(stackHeight)-1]: lastIndex = 0 while stackHeight and height[i] < stackHeight[len(stackHeight)-1]: lastIndex = stackIndex.pop() tempArea = stackHeight.pop() * (i-lastIndex) if maxArea < tempArea: maxArea = tempArea stackHeight.append(height[i]); stackIndex.append(lastIndex) while stackHeight: tempArea = stackHeight.pop() * (len(height) - stackIndex.pop()) if tempArea > maxArea: maxArea = tempArea return maxArea这题与室友找工作时见到的一条面试题源出一脉,居然是用stack实现的算法。
阅读全文
0 0
- 算法分析课每周练习 Largest Rectangle in Histogram
- LeetCode算法题目:Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- 在idea里使用SpringBoot整合MyBatis时遇到的Mapper扫描不到的问题
- php获取自然周、自然月的处理
- 浅谈crond服务及crontab用法
- MySQL查询和修改auto_increment的方法
- 性能测试和LoadRunner相关概念
- 算法分析课每周练习 Largest Rectangle in Histogram
- mybatis缓存机制
- Collection
- Ramdisk (NT)研究
- linux中反引号`与$()得区别
- 如何在直播视频上添加水印Logo
- jquery dialog 弹出 ajax加载数据
- R极简教程-10:R语言绘图基础
- Codeforces Round #420 (Div. 2) 821E. Okabe and El Psy Kongroo