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

7c框架 网站建设免费发布信息网站大全

7c框架 网站建设,免费发布信息网站大全,施工企业价值链,竞网做的网站怎么样Leetcode 2866. Beautiful Towers II 1. 解题思路2. 代码实现 题目链接:2866. Beautiful Towers II 1. 解题思路 这一题其实思路上还是比较明显的,就是一个单调数组的问题,问题在于说如果具体去设计这个单调数组。 我们从题目出发&#x…
  • Leetcode 2866. Beautiful Towers II
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:2866. Beautiful Towers II

1. 解题思路

这一题其实思路上还是比较明显的,就是一个单调数组的问题,问题在于说如果具体去设计这个单调数组。

我们从题目出发,具体来说,就是要构造一个山形数组,使得这个山形数组在给定的maxHeights的限制下能够面积最大,或者说累积和最大。

那么,我们不妨考察每一个位置作为山的山顶的情况下所能够构成的山形数组的面积,然后取出其中的最大值即可。

而这个问题又可以进一步拆解为,考察每一个位置作为山顶时,其左侧可以获得最大面积以及右侧可以获得的最大面积。此时,前者就是一个单调非减数组,而后者就是一个单调非增数组。而这两部分本质上又是相同的,因此,我们仅以左侧进行说明。

要求每一个位置作为山顶时左侧的这个最大的单调非增数组,那么对应可以采用的maxHeights一定也是一个单调递增的数组,因此,我们只需要构造一个数组,考察每一个位置的maxHeight[i]时,就弹出当前单调数组当中所有大于这个高度的值,直到剩下有一个更低的maxHeight[j]存在,此时能够获得的面积就是之前一个maxHeight[j]的面积加上maxHeight[i]*(i-j),也就是从第j+1i的位置最多只能够取maxHeight[i],从而,我们就在 O ( N ) O(N) O(N)的时间复杂度上求得了所有位置作为山顶时,左侧可以取到的最大面积。

同样,我们反向即可求得右侧的最大面积,两者相加减去其本身(因为本身计算了两次)即为对应位置作为山顶时能够取到的最大面积。

最后,我们再从中获得最大值即可。

2. 代码实现

给出python代码实现如下:

class Solution:def maximumSumOfHeights(self, maxHeights: List[int]) -> int:n = len(maxHeights)left = [0 for _ in range(n)]s = []for i, h in enumerate(maxHeights):while s != [] and s[-1][0] >= h:s.pop()if s == []:s.append((h, i, h*(i+1)))else:_, j, r = s[-1]s.append((h, i, r + h*(i-j)))left[i] = s[-1][2]right = [0 for _ in range(n)]s = []for i in range(n-1, -1, -1):h = maxHeights[i]while s != [] and s[-1][0] >= h:s.pop()if s == []:s.append((h, i, h*(n-i)))else:_, j, r = s[-1]s.append((h, i, r + h*(j-i)))right[i] = s[-1][2]return max(left[i] + right[i] - maxHeights[i] for i in range(n))

提交代码评测得到:耗时862ms,占用内存42.5MB。

http://www.khdw.cn/news/12566.html

相关文章:

  • 中小企业网站建设 论文免费发布广告的平台
  • 太原网站建设制作公司哪家好营销战略有哪些内容
  • 棠下手机网站建设西安网站seo价格
  • 零基础做网站教程seo外链是什么意思
  • 杭州的网站建设公司哪家好电商seo是什么意思
  • 做网站后台程序是怎么来的百度推广后台管理
  • 诸城 网站 建设1688关键词怎么优化
  • 网站推广链接怎么做谷歌官方网站首页
  • 婚恋网站上认识人 带你做原油交易企业网站推广外包
  • 网站开发合同 附件百度关键词查询排名怎么查
  • 万网建网站西安网站seo公司
  • 中小网站推广 一级域名还是二级域名站长工具爱站网
  • 多网站后台问题武汉电脑培训学校有哪些
  • 杭州软件开发制作北京seo营销公司
  • 中国建设银行官网站保本理财站外推广平台有哪些
  • 南昌网站开发百度推广首次开户需要多少钱
  • 做网站需要用什么语言湖南 seo
  • 微信网站建设计入什么科目站长工具app
  • 广州企业网站模板建站网站怎么优化关键词快速提升排名
  • 建设电动车官方网站买链接网
  • 当地自己的淘宝网站怎么做百度客服人工在线咨询
  • 在那个网站做推广实用站长统计 网站统计
  • 网站 app 哪个先做线上营销活动方案
  • 江苏建设厅官网网站百度seo课程
  • 网站集群怎么做网站排名工具
  • 建站成功是怎么回事武汉关键词排名工具
  • 上海全国网站建设南宁seo推广优化
  • 请人做网站要注意什么经典营销案例分析
  • 宿迁装饰网站建设公司排名cpc广告接单平台
  • 怎么在微信上做网站怎么拿到百度推广的代理