我正在解决Gfg的雨水收集问题。
我的方法是:对于任何索引,我都会在右侧数组中找到最大元素,在左侧数组中找到最大元素。然后,对于相应的位置,我将找到截留在那里的水,并使用公式将其存储在水中[],公式为:水[I]=最小值(maxL[I],MaxR[I])-数组[I]
。(请参阅代码以了解更多信息)
最后,我将返回水中所有元素的总和[]。
代码:
class Solution:
def trappingWater(self, arr,n):
maxL=[] #for storing the maximum on left
maxR=[] #for storing the maximum on right
water=[0]*n
for i in range(len(arr)):
if len(maxL)==0:
mx=arr[i]
elif arr[i]>mx:
mx=arr[i]
maxL.append(mx)
for i in range(len(arr)-1,-1,-1):
if len(maxR)==0:
mx=arr[i]
elif arr[i]>mx:
mx=arr[i]
maxR.append(mx)
maxR=maxR[::-1]
for i in range(n):
water[i]=min(maxL[i],maxR[i])-arr[i]
return sum(water)
但由于这是一个来自堆栈主题的问题,我想知道如何在这个问题中实现堆栈来解决这个问题。
你的方法很好。
只要砌块高度降低,就可以使用堆垛来收集砌块,因为它们可以用作左侧支撑以保持水分。
与您的解决方案相反,然后通过两个(可能较远的)区块之间的水平“跨度”来添加水量。为此,还需要将块的x坐标放置在堆栈上。
当一个条目的高度不大于我们当前访问的块的高度时,它将从堆栈中删除。在这种情况下,需要将一些水量添加到总量中:从堆栈中弹出较低的块,并计算该块上方的水量,介于现在位于堆栈顶部的块(如果有)和当前块之间的左支撑。
下面是脚本中的内容:
class Solution:
def trappingWater(self, arr, n):
stack = []
water = 0
for x, y in enumerate(arr):
while len(stack) > 0 and stack[-1][1] <= y:
x1, y1 = stack.pop() # we will look for water above this block
if stack:
x2, y2 = stack[-1] # this is the left-sided support for holding water
water += (min(y2, y) - y1) * (x - x2 - 1)
stack.append((x, y))
return water
我想接收snmp陷阱,我在snmp4j上获得了它,但现在我正在使用westhawk snmp堆栈库来实现陷阱接收器模块。我使用这个库示例来接收陷阱,但这段代码以rawPdu的形式接收陷阱,当我编辑代码时,我应该怎么做?这是我的代码:
在我的Android应用程序中,我有列表视图和列表项详细信息视图。 Listview和details视图是一个活动中的片段。最初,我将列表片段加载到活动中,如果用户单击列表项,它将用细节片段替换相同的视图,并将该片段添加到一个活动中的backstack中。 代码: 如果用户单击后退按钮,它将进入列表视图,因此没关系。 所以,我的问题是,如果用户在列表项上单击多次(超过10次),应用程序就会因Out
任何人都可以帮助我解决这个问题AndroidManifest.xml mainactivity.kt
while (<STDIN>) 一定要小心这点。如果你不知怎么回事地得到了假值(如:空行),你的文件可能 停止处理了。假如你在处理文件读取(除非修改了 $/),这种事一般不会发生, 但却可能发生。 你更喜欢这样运行: while (readdir(DIR)) { 假设你有文件名为 0 的话,那么程序将停止,且不会继续处理文件。 更合适的 while 循环看起来像这样: while ( defin
本文向大家介绍Apache、Nginx下Font Awesome在 Firefox 中不显示问题解决方法,包括了Apache、Nginx下Font Awesome在 Firefox 中不显示问题解决方法的使用技巧和注意事项,需要的朋友参考一下 一、Nginx服务器解决方法 服务器使用的是 Nginx,要在响应的头部添加 Access-Control-Allow-Origin 字段,添加方法是用 a
当从@RestController而不是DTO返回@Entity时,是否存在任何缺陷?这样地: