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

泰安网站优化公司做照明出口的网站

泰安网站优化公司,做照明出口的网站,用模板做网站,北京公司注册地址要求【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84 需强化知识点 单调栈强化 题目 42. 接雨水 注意 python 数组反序用法 result [::-1] class Solution:def trap(self, height: List[int]) -> int:# n len(height)# leftMax, rightMax [0] * n, [0] * …

【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84

需强化知识点

  • 单调栈强化

题目

42. 接雨水

  • 注意 python 数组反序用法 result [::-1]
class Solution:def trap(self, height: List[int]) -> int:# n = len(height)# leftMax, rightMax = [0] * n, [0] * n# result = 0# leftMax[0] = height[0]# for i in range(1, n):#     leftMax[i] = max(leftMax[i-1], height[i])# rightMax[n-1] = height[n-1]# for i in range(n-2, 0, -1):#     rightMax[i] = max(rightMax[i+1], height[i])# for i in range(1, n):#     sum_i = min(leftMax[i], rightMax[i])- height[i]#     result += sum_i# return result# 递减的,当遇到比栈顶大的,即代表遇到凹槽,弹出计算,还是存 indexstack = [0]result = 0for 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 len(stack) > 0 and height[i] > height[stack[-1]]:mid_height = height[stack[-1]]stack.pop()if stack:right_height = height[i]left_height = height[stack[-1]]h = min(right_height, left_height) - mid_heightw = i - stack[-1] -1result += h*wstack.append(i)return result

84. 柱状图中最大的矩形

  • 双指针:记录左右侧第一个小于当前高度的下标(超时),最左侧和最右侧的处理也不同
  • 单调栈:注意要在首尾加入0,0,因为不同于接雨水,可以单独成一个矩形
class Solution:def largestRectangleArea(self, heights: List[int]) -> int:# n = len(heights)# # 左右侧第一个小于当前高度的下标# left_min, right_min = [0] * n, [0] * n# result = 0# left_min[0] = -1# for i in range(1, n):#     j = i - 1#     while j >= 0 and heights[j] >= heights[i]:#         j -= 1#     left_min[i] = j# right_min[n-1] = n# for i in range(n-2, -1, -1):#     j = i + 1#     while j < n and heights[j] >= heights[i]:#         j += 1#     right_min[i] = j# for i in range(0, len(heights)):#     tmp = heights[i] * (right_min[i] - left_min[i] - 1)#     result = max(tmp, result)# return resultheights.insert(0, 0)heights.append(0)n = len(heights)# 递增,存下标stack = [0]result = 0for i in range(1, n):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:left_index = stack[-1]right_index = iwidth = right_index - left_index - 1result = max(result, width*heights[mid_index])stack.append(i)return result
http://www.yayakq.cn/news/973544/

相关文章:

  • 网站建设排名优化石大远程网页设计及网站建设答案
  • 中国公路建设行业协会网站个人网页设计论文免费
  • 青海制作网站的公司贵州建设考试网站
  • 网站建设十年经验编程软件python下载
  • 建设官网的网站国外直播平台tiktok下载
  • 地图类网站开发实战教程网站的设计 更新
  • 泰州公司做网站优秀的网站开发
  • 汉中网站seowordpress 运行好慢
  • 全国招聘网站排名阅文集团旗下哪个网站做的最好
  • 以前做视频的网站iis网站压缩
  • 佛山优化网站公司ios软件开发前景
  • 微信网站如何开发深圳哪个网站好推广一点
  • 网站模板插件定西市建设局网站
  • 男子做网站临邑县住房和城乡建设局网站
  • 站长工具seo综合查询外部链接数量手机网站建设规划图
  • 网站建设企业网站建设网站排版布局比例
  • 外贸网站开发开发漳州网
  • 高校网站建设需求分析报告湖南网站建设磐石网络答疑
  • 个人如何做商城网站南京网页设计招聘
  • 西部数码如何建设自己的网站福州专业的seo软件
  • 公司搭建网站步骤网站建设价格与方案
  • 团购网站建设流程如何管理wordpress
  • 做网站程序的都不关注seossl aws wordpress
  • 网站怎么解析做美食直播哪个网站好
  • 介绍做茶工艺的网站开工作室做网站怎样找资源
  • 易销云建站公司类似非小号的网站怎么做
  • 贵阳搜索玩的网站wordpress移动导航菜单
  • 怎么做模板网站的报价表长沙房地产公司排名
  • 网站设计 seo做电子政务网站
  • vc域名建站的网站企业做网站 里面都写什么