当前位置: 首页 > news >正文

代码随想录算法训练营DAY55|42. 接雨水、84.柱状图中最大的矩形

42. 接雨水

  • 题目链接:42. 接雨水
  • 双指针
class Solution(object):def trap(self, height):""":type height: List[int]:rtype: int"""lh = [0]*len(height)rh = [0]*len(height)lh[0]=height[0]for i in range(1, len(height)):lh[i] = max(height[i],lh[i-1])rh[-1]=height[-1]for j in range(len(height)-2, -1, -1):rh[j] = max(height[j], rh[j+1])result = 0for k in range(len(height)):result += min(lh[k], rh[k])-height[k]return result
  • 单调栈
class Solution(object):def trap(self, height):""":type height: List[int]:rtype: int"""result = 0stack =[0]for i in range(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])-subw = i-stack[-1]-1result+=w*hstack.append(i)return result

84.  柱状图中最大的矩形

  • 题目链接:84.  柱状图中最大的矩形
  • 为什么要首尾加零:防止单调递增递减序列的情况
class Solution(object):def largestRectangleArea(self, heights):""":type heights: List[int]:rtype: int"""heights.insert(0,0)heights.append(0)result = 0stack = [0]for i in range(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]-1h = heights[mid_index]result = max(result, w*h)stack.append(i)return result

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++:std::function的libc++实现
  • 极简通俗VAE
  • linux驱动编程 - kfifo先进先出队列
  • pytorch-时间序列
  • Sass 语法
  • 【Python文件】操作终极指南:高效管理和处理文件系统的必备技能
  • 七、MyBatis-Plus高级用法:最优化持久层开发-个人版
  • ChatGPT对话:按ESC键退出Python程序
  • NSSCTF-Web题目24(RCE-空格绕过、过滤绕过)
  • python类继承和类变量
  • mac上挂载linux目录
  • 使用Livox-Mid360激光雷达,复现FAST_LIO(保姆级教程)
  • Linux 高级编程——线程控制
  • 【优化论】约束优化算法
  • 学习笔记——动态路由——OSPF(邻接/邻居)
  • hexo+github搭建个人博客
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JavaScript服务器推送技术之 WebSocket
  • JavaScript新鲜事·第5期
  • JS变量作用域
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Less 日常用法
  • Lsb图片隐写
  • Mac转Windows的拯救指南
  • Making An Indicator With Pure CSS
  • Redis中的lru算法实现
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • v-if和v-for连用出现的问题
  • win10下安装mysql5.7
  • 从零搭建Koa2 Server
  • 从重复到重用
  • 基于HAProxy的高性能缓存服务器nuster
  • 记一次和乔布斯合作最难忘的经历
  • 驱动程序原理
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 数据科学 第 3 章 11 字符串处理
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 小李飞刀:SQL题目刷起来!
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 如何正确理解,内页权重高于首页?
  • "无招胜有招"nbsp;史上最全的互…
  • # Java NIO(一)FileChannel
  • # Redis 入门到精通(九)-- 主从复制(1)
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (C++20) consteval立即函数
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (六)Flink 窗口计算
  • (论文阅读30/100)Convolutional Pose Machines
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (三)docker:Dockerfile构建容器运行jar包
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (一)Linux+Windows下安装ffmpeg
  • (转载)PyTorch代码规范最佳实践和样式指南