LeetCode-85-Maximal Rectangle 类似上一题,n遍单调栈
来源:互联网 发布:合肥数码美工招聘信息 编辑:程序博客网 时间:2024/06/11 16:42
class Solution(object): def maximalRectangle(self, matrix): """ :type matrix: List[List[str]] :rtype: int """ Lenx=len(matrix) if Lenx==0:return 0 Leny=len(matrix[0]) dp=[[0 for y in range(Leny+1)]for x in range(Lenx+1)] for i in range(Lenx): for j in range(Leny-1,-1,-1): if matrix[i][j]=='1': dp[i][j]=dp[i][j+1]+1 ans=0 for i in range(Leny): heights=[] for j in range(Lenx): heights.append(dp[j][i]) ans=max(ans,self.largestRectangleArea(heights)) return ans def largestRectangleArea(self, heights): """ :type heights: List[int] :rtype: int """ ans=0 heights.append(0) stack=[] stack.append((0,-1))#(value,position) Len=len(heights) for i in range(Len): top=stack[-1] if heights[i]>top[0]: stack.append((heights[i],i)) elif heights[i]<top[0]: while(heights[i]<stack[-1][0]): ans=max((i-stack[-1][1])*stack[-1][0],ans) p=stack[-1][1] stack.pop() stack.append((heights[i],p)) return ans
阅读全文
1 0
- LeetCode-85-Maximal Rectangle 类似上一题,n遍单调栈
- LeetCode 85 Maximal Rectangle (最大子矩形 单调栈)
- LeetCode(85) Maximal Rectangle
- leetcode || 85、Maximal Rectangle
- leetcode 85:Maximal Rectangle
- leetcode 85: Maximal Rectangle
- LeetCode(85) Maximal Rectangle
- Leetcode (85) Maximal Rectangle
- leetcode 85: Maximal Rectangle
- LeetCode 85 Maximal Rectangle
- [Leetcode] #85 Maximal Rectangle
- [Leetcode 85] Maximal Rectangle
- [leetcode 85] Maximal Rectangle 待续
- LeetCode[85]::Maximal Rectangle C++
- LeetCode No.85 Maximal Rectangle
- Leetcode 85 Maximal Rectangle 推荐!
- 【LeetCode】Maximal Rectangle && Maximal Square
- Leetcode:Maximal Square & Maximal Rectangle
- 如何才能变得富有?秘密就在这三点里
- Leetcode 661 Image Smoother
- Pop Sequence
- 【最大流 && 点限流】HDU
- Tomcat服务器下载与安装以及在MyEclipse上配置Tomcat服务器
- LeetCode-85-Maximal Rectangle 类似上一题,n遍单调栈
- Etnetera Brevity Challenge
- (51Nod 1183 编辑距离)字符串编辑距离
- 解决springMVC4下使用@ResponseBody的中文乱码问题
- Java 中带参无返回值方法的使用
- 线程间的通信机制
- 原创 蜂蜡等级生产工艺过程
- 详细谈一下自己对IOC跟AOP的详细理解
- Leetcode 680 Valid Palindrome II