NO42. 接雨水
#最近的算法都是考查思维而不是特定算法,值得一试 #按层 class Solution: def trap(self, height: List[int]) -> int: n=len(height) left,right=0,n-1 tmp,high=0,1 while(left<=right): while(left<=right and height[left]<high): left+=1
#动态规划- 状态转移方程-求每柱的左右侧最大高度 #想法求出每个左右最大高度,再用最小的去减去现在高度因为能接住水的是最短的那条 class Solution: def trap(self, height: List[int]) -> int: n = len(height) max_left = [height[0]] * n max_right = [height[-1]] * n res = 0 for i in range(1, n): max_left[i] = max(max_left[i - 1], height[i]) max_right[n - i - 1] = max(max_right[n - i], height[n - i - 1]) for i in range(n): res += min(max_left[i], max_right[i]) - height[i] return res
# 双指针 ans = 0 left, right = 0, len(height) - 1 leftMax = rightMax = 0 while left < right: leftMax = max(leftMax, height[left]) rightMax = max(rightMax, height[right]) if height[left] < height[right]: ans += leftMax - height[left] left += 1 else: ans += rightMax - height[right] right -= 1 return ans
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)