- 84.柱状图中最大的矩形 Largest Rectangle in Histogram - LeetCode
单调栈这几题没过脑,感觉一团浆糊,要重新看一下
class Solution {public int largestRectangleArea(int[] heights) {Stack<Integer> stack = new Stack<>();int[] newHeights = new int[heights.length + 2];newHeights[0] = 0;newHeights[newHeights.length - 1] = 0;for (int i = 0; i < heights.length; i++) {newHeights[i + 1] = heights[i];}heights = newHeights;stack.push(0);int res = 0;for (int i = 1; i < heights.length; i++) {if (heights[i] > heights[stack.peek()]) {stack.push(i);} else if (heights[i] == heights[stack.peek()]) {stack.pop();stack.push(i);} else {while (heights[i] < heights[stack.peek()]) {int mid = stack.peek();stack.pop();int left = stack.peek();int right = i;int w = right - left - 1;int h = heights[mid];res = Math.max(res, w * h);}stack.push(i);}}return res;}
}
总结:
60天的时间真的是一晃就过了,好像2,3月就看到了打卡营的信息,一直没有参加,后来6月的时候才参加,要是早几个月的话,现在已经刷了好几遍题了,但如果6月的时候我没有参加这一期,估计到现在也还是在盲目的刷题,也不知道原来自己可以坚持每天打卡,系统的把139题过一遍。刷了这好几年的题,都是自己乱刷,一开始就应该系统的学习,当年报个小班进了大厂,钱早就挣回来了。
很高兴这次坚持了下来,Leetcode刷了600题,但遇到新题还是不会,面试就算遇到原题有时候也不能bug free的写下来,这次遇到的题目基本之前都做过,但重新学习还是收获良多。准备二刷了,再加上blind 75,剑指offer之类的,去掉重复的题,估计会有个150左右,先吃透这些题再追求数量吧。这个leetcode的账号是21年开始的,如果那时候好好的系统的刷了,早就在市场最热的时候去了大厂了,不会到现在这个结局。
往事已以,要关注当下,加油吧!