和昨天的思路完全一样 单调栈直接解了 双指针法特别麻烦
- class Solution:
- def largestRectangleArea(self, heights: List[int]) -> int:
- heights.insert(0,0)
- heights.append(0)
- stack=[0]
- res=0
- for i in range(1,len(heights)):
- while stack and heights[i]
1]]: - mid=heights[stack[-1]]
- stack.pop()
- if stack:
- area=(i-stack[-1]-1)*mid
- res=max(area,res)
- stack.append(i)
- return res
最后一天就一道题了,感谢自己,做得好