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

网站改版301是什么品牌建设工作的意义

网站改版301是什么,品牌建设工作的意义,网站后台模板安装显示不了,seo工具软件LC1793. 好子数组的最大分数 题目描述 给你一个整数数组 nums &#xff08;下标从 0 开始&#xff09;和一个整数 k 。 一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i1], ..., nums[j]) * (j - i 1) 。 一个 好 子数组的两个端点下标需要满足 i < k < j 。 请…

LC1793. 好子数组的最大分数

题目描述

给你一个整数数组 nums (下标从 0 开始)和一个整数 k 。
一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i+1], ..., nums[j]) * (j - i + 1) 。
一个 好 子数组的两个端点下标需要满足 i <= k <= j 。
请你返回 好 子数组的最大可能 分数 。
1 <= nums.length <= 10^5
1 <= nums[i] <= 2 * 10^4

分析

数据要求非常高,n是1e5级别的,也就是O(n^3)、O(n^2)时间复杂度的算法都无法AC,所以正解只有O(n)或者O(n logn)的算法才能通过。本题正解是O(n)

暴力解法1:纯蛮力

三重循环,枚举i,再枚举j,再枚举i~j求出最小值

时间复杂度O(n^3)

for i in range(n):for j in range(i,n):mi = inffor k in range(i,j+1):mi = min(mi,nums[k])ans = max(ans,mi*(j-i+1))

这个暴力解法可以优化成O(n^2),就是先预处理出来mi[i][j],表示i~j的最小值。但是时间还是不满足题意

暴力解法2:贡献思维

枚举nums[i],找到当nums[i]是好子数组最小值时的最大区间。
即找到左边和右边离i最近的比它小的元素,就是边界,从而确定以nums[i]为最小值的子数组的范围
时间复杂度O(n^2)

for i in range(n):# 找左边离i最近的比它小的元素j = iwhile j>=0 and nums[j]>=nums[i]:j -= 1l = j# 找右边离i最近的比它小的元素j = iwhile j<n and nums[j]>=nums[i]:j += 1r = jif l<k and r>k:res = (r-l-1)*nums[i]ans = max(ans,res)

正确解法

想一下暴力解法2有什么可以优化的地方呢?
其实在求左边(右边)离i最近的比它小的元素这个地方是O(n)的,其实可以用单调栈将这个操作优化成O(1)的。

为了解决这个问题,我们可以采用单调栈的方法来找到每个元素左边和右边第一个比它小的元素的位置。这是因为对于任意的元素nums[i],我们想要知道在其左边和右边第一个比它小的元素,从而确定以nums[i]为最小值的子数组的范围
核心思路:枚举每一个Nums[i]作为最小值的好子数组的最大分数。

时间复杂度O(n)

AC 代码

class Solution:def maximumScore(self, nums: List[int], k: int) -> int:n = len(nums)# 单调栈,找到i左边/右边离他最近的比它小的数# l[i]表示nums[i]左边第一个比它小的元素的下标 l = [-1]*n# r[i]表示nums[i]右边第一个比它小的元素的下标  r = [n]*n# 使用单调栈计算l数组stk = []for i in range(n):while len(stk) and nums[stk[-1]] >= nums[i]:stk.pop()l[i] = stk[-1] if len(stk) else -1stk.append(i)stk = []for i in range(n-1,-1,-1):while len(stk) and nums[stk[-1]] >= nums[i]:stk.pop()r[i] = stk[-1] if len(stk) else nstk.append(i)ans = 0for i in range(n):if l[i]<k and r[i]>k:res = (r[i]-l[i]-1)*nums[i]ans = max(ans,res)return ans
http://www.yayakq.cn/news/132952/

相关文章:

  • wordpress 多站点模式 帐号是通用的么免费科技
  • 做自动化设备哪个网站只做早餐的网站
  • 注册公司网站的步骤公司logo设计价格
  • ota平台网站建设做网站的画布是多少
  • 个人网站,可以做淘宝客吗程序员做图网站
  • 东海网站建设wordpress 制作微信小程序
  • 前端学习网站电商平台开发项目
  • 骏域网站建设专家广州优化设计卷子答案
  • 做网络网站需要三证么湖北省平安建设网站
  • 网站seo课程wordpress娃娃插件
  • 关于申请建设门户网站的买卖域名的网站
  • 佛山企业网站建设技术建设网官方网站
  • 河北省城乡建设培训网官方网站asp企业网站模板下载
  • 外贸soho建站上海网站制作找缘魁
  • 高端企业网站建设注意问题wordpress定义字体颜色
  • 语文建设网站wordpress数据库变量引用
  • 网站案例分析湖南网页搜索引擎
  • 在国外网站上买机票怎样做财务网站建设时间如何查询
  • 只做山寨的网站深圳网站设计招聘信息
  • dedecms网站建设合同凡科网站怎么做授权查询
  • 北京制作网站的基本流程卖东西怎么做网站
  • 企业网站 html模板下载网页实训心得体会
  • sql网站发布流程可免费投放广告的平台
  • wordpress tax inputsem优化软件哪家好
  • 做网站必须会php吗网站开发按几年摊销
  • 弄一个公司网站需要多少钱绍兴网站制作工具
  • 网站301重定向检测网图素材库
  • 做流量的网站东莞人才市场档案托管
  • 建设外贸网站的公司网址大全123上网导航网址123
  • 网站备案地点选择aws使用wordpress