用“单调叠”解决“赞青豆”等现实生活中的问题表明,此时青豆从天而降均匀地撒下,计算这样排列的柱子能接住多少颗绿豆。(不分角累加)输入格式输入每列高度的数组输出格式输出一个整数,表示最多能抓到多少个绿豆输入示例:[5,0,2,1,4,0??,[1,0,3]输出例子:17题解题思路通过单调栈找到每列左边第一个高的位置,将两列之间的绿豆个数相加,将元素存入栈中按降序排列。首先比较当前栈顶元素是否小于当前列的高度。如果小于栈顶,则继续压入栈中。否则,需要通过出栈到比当前列高的第一个位置,找到栈中元素存放的数组下标位置。所以宽度差值可以用上一个值减去当前下标值得到。使用Last变量记录弹出栈顶元素的高度,因为可以计算出两列的高度差,每弹出一列Last就会更新一次。判断栈是否为空。如果不为空,则需要加上左列与当前列之间高度的大小。Importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){int[]height=newint[]{5,0,2,1,4,0??,1,0,3};System.out.println(青豆(身高));}staticintqingdou(int[]w){Stack
