LeetCode
数学家是我理想
博客:https://wmathor.com
展开
-
LeetCode218. 天际线问题
题目链接:LeetCode218题解如果按照一个矩形一个矩形处理会非常麻烦,我们把这些矩形拆成两个点,一个左上角顶点,一个右上角顶点。将所有顶点按照横坐标进行排序然后开始遍历,遍历时通过一个堆来得知当前图形的最高位置,堆顶是所有顶点中最高的点,只要这个点没被移出堆,就说明这个最高的矩形还没结束。对于左顶点,我们将其加入堆中,对于右顶点,我们找出堆中相应的最顶点,然后移出左顶点,同时也意味着这...原创 2018-11-06 22:46:33 · 1144 阅读 · 0 评论 -
LeetCode42. 接雨水
题目链接:LeetCode42有人说用贪心,我觉得这是一个单调栈的板子题,构建一个单调递减栈(栈底到栈顶是递减的),要想能够收集雨水,栈中至少要两个数字,才能形成一个坑,先pop一个数字,这个数字就是最低值,再peek一个数字,peek的数字和遍历的到的值进行比较,较小的值减去最低值的高度,得出的这个高度就是能蓄水的高度,底就是做右边界的值相减class Solution { pub...原创 2018-11-06 22:47:54 · 671 阅读 · 0 评论 -
LeetCode85. 最大矩形
题目链接:LeetCode85题解这是LeetCode84题的一个扩展。这道题做法和84很类似,首先对第一行求一个最大体积,然后到第二行,将第一行的值累加到第二行上,但是有一个前提条件,如果第二行某一列的值是0,那就直接是0了,比方说第二行累加后的值为2,0,2,1,1,然后对这个值求一次最大体积。第三行累加后的值为3,1,3,2,2,第四行累加后的值为4,0,0,3,0代码class ...原创 2018-11-06 22:48:11 · 833 阅读 · 0 评论 -
LeetCode84.柱状图中最大的矩形
题目链接:LeetCode84题解单调栈板子题,创建一个单调递增栈(栈底到栈顶是递增的),栈内存放的数组下标,遍历数组,将下标存进栈内,以样例来说首先栈空,0直接进栈;然后因为nums[stack.peek()] > nums[1],所以0出栈了,同时记录以num[0]为高的矩形的面积,当前遍历到的数组下标为i,此时i是1,k等于0出站后,栈顶元素的下标,k= stack.isEmp...原创 2018-11-06 22:48:28 · 326 阅读 · 0 评论