代码随想录算法训练营第五十九天|503.下一个更大元素II|42. 接雨水

一、503.下一个更大元素II

思想:首先看到题目下一个更大元素,很明显想到是单调栈的方法,由于是找更大的元素所以为单调递增栈,这题有一点区别是这题是一个环状的,然后搜索的时候有一个技巧 i = i%len(nums)从而实现环的循环,然后应该很多人想会不会后面计算的时候会把前面的值覆盖掉,其实不会的,这个需要你自己去试一下。

代码随想录算法训练营第五十九天|503.下一个更大元素II|42. 接雨水_第1张图片

二、 42. 接雨水

思想:这题很重要的是思路,因为我感觉自己单调栈的概念理解的不错,但是拿到这题的时候一点想法都没有,脑袋很空。怎么和单调栈联系在一起,接雨水有横着计算和竖着计算,这里时横着计算,首先找到一个柱子的左边比它高的,然后找到右边比它高的,你就可以计算出雨水的高,然后计算出雨水的宽,遍历每一个块,统计所有能接雨水的总和。思路非常巧妙,然后右边的高都会找,左边的高怎么找呢,因为是找比它大的,所以是单调递增栈,左边比它大的就在栈中。整体思想就是这样。

代码随想录算法训练营第五十九天|503.下一个更大元素II|42. 接雨水_第2张图片

 

你可能感兴趣的:(leetcode,算法,职场和发展)