classSolution(object):deftrap(self, height):"""
:type height: List[int]
:rtype: int
"""
lh =[0]*len(height)
rh =[0]*len(height)
lh[0]=height[0]for i inrange(1,len(height)):
lh[i]=max(height[i],lh[i-1])
rh[-1]=height[-1]for j inrange(len(height)-2,-1,-1):
rh[j]=max(height[j], rh[j+1])
result =0for k inrange(len(height)):
result +=min(lh[k], rh[k])-height[k]return result
单调栈
classSolution(object):deftrap(self, height):"""
:type height: List[int]
:rtype: int
"""
result =0
stack =[0]for i inrange(1,len(height)):if height[i]<height[stack[-1]]:
stack.append(i)elif height[i]==height[stack[-1]]:
stack.pop()
stack.append(i)else:while stack and height[i]>height[stack[-1]]:
sub = height[stack[-1]]
stack.pop()if stack:
h =min(height[stack[-1]], height[i])-sub
w = i-stack[-1]-1
result+=w*h
stack.append(i)return result
84. 柱状图中最大的矩形
题目链接:84. 柱状图中最大的矩形
为什么要首尾加零:防止单调递增递减序列的情况
classSolution(object):deflargestRectangleArea(self, heights):"""
:type heights: List[int]
:rtype: int
"""
heights.insert(0,0)
heights.append(0)
result =0
stack =[0]for i inrange(1,len(heights)):if heights[i]>heights[stack[-1]]:
stack.append(i)elif heights[i]==heights[stack[-1]]:
stack.pop()
stack.append(i)else:while stack and heights[i]<heights[stack[-1]]:
mid_index = stack[-1]
stack.pop()if stack:
w = i-stack[-1]-1
h = heights[mid_index]
result =max(result, w*h)
stack.append(i)return result
环境说明
ubuntu16.04android4.1java version “1.6.0_45”GNU Make 3.81gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
可能有人会问,现在都2024了怎么还在用android4版本,早都过时了。确实,现在最新的都是Android13、And…
Seq2Seq model
Seq2Seq(Sequence to Sequence)模型是一类用于将一个序列转换为另一个序列的深度学习模型,广泛应用于自然语言处理(NLP)任务,如机器翻译、文本摘要、对话生成等。Seq2Seq模型由编码器&#…
业内专业人士表示,如果您拥有 iPhone,您一定知道忘记锁屏密码会多么令人沮丧。由于 Apple 的安全功能强大,几乎不可能在没有密码或 Apple ID 的情况下访问锁定的 iPhone。
“当我忘记密码时,如何在没有密码的情况下解锁iPhone&am…