代码随想录训练营第六十天 | 单调栈
今天是代码随想录训练营的第六十天,是最后一天,也代表这一刷结束
class Solution { public int largestRectangleArea(int[] heights) { int n = heights.length; Stack<Integer> stack = new Stack<>(); int max = -1; for(int i = 0; i< n; i++){ while(!stack.isEmpty() && heights[stack.peek()]>=heights[i]){ int temp = stack.peek(); stack.pop(); max = Math.max(max, (stack.isEmpty()?i:(i-1)-stack.peek())*heights[temp]); } stack.push(i); } while(!stack.isEmpty()){ int temp = stack.peek(); stack.pop(); max = Math.max(max,(stack.isEmpty()?n:(n-1-stack.peek()))*heights[temp]); } return max; } }
要理解空栈和自然弹出所代表的含义。
代码随想录训练营刷完了,刷题带给我很大的自信,在刷之前还是对未来很迷茫的,刷的过程中开始投简历,找到了一个目前蛮满意的工作,期待二刷!加油!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?