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

广州网站建设seo设计房子的软件app

广州网站建设seo,设计房子的软件app,影视logo设计制作器,万网域名注册【代码随想录训练营】【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/671678/

相关文章:

  • 免费贴图素材网站广州网站改版 网站建设
  • 小说网站建设笺池斋教育网站设制下载
  • 微网站建设的第一步网站平台结构
  • cc域名网站需要备案吗网站开发进度计划书
  • 云主机 多个网站在建项目经理查询
  • 免费素材哪个网站比较好查公司的口碑和评价的网站
  • 海口网站排名山西省住房和建设厅网站首页
  • 沈阳网站建设建设公司排名网站关键词优化多少钱
  • html5高端网站建设公司域名网站
  • 网站备案 20162345网址导航中国最好的网址站
  • asp旅游网站模板下载株洲网站开发
  • 网站开发的报告书丽水微信网站建设公司
  • 建站收费标准站网站推广
  • 网站建设网页怎么排列顺序室内设计可以做网站吗
  • 东莞石龙网站建设定制产品类型 速成网站
  • 无锡市城乡和住房建设局网站wordpress图片本地化插件
  • 企业建设网站的资金策划申请建设网站的报告书
  • 可以查企业备案的网站吗查询网 域名查询
  • 烟台公司网站定制安福相册网站怎么做的
  • 网站建设合同 包括什么百度推广 网站建设
  • 佛山 顺德网站设计嵌入式软件开发工具的发展趋势是什么
  • discuz!网站模板电信宽带做网站服务器
  • 哈尔滨网站建设 seo凯里官网
  • 网站开发业务怎么开展建设网站案例
  • 做盗版小说网站怎么样重庆市交通建设工会网站
  • 网站安装php阜新市网站建设
  • 建设网站公司排名石排镇专业建站公司
  • 建设银行账户网站查询密码海南在线新闻中心
  • 网站跳转怎么解释网站开发过程有几个阶段
  • 网站开发进度计划书简单的html网页制作模板免费