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

学做网站和推广要多久厦门seo培训学校

学做网站和推广要多久,厦门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.mmbaike.com/news/24476.html

相关文章:

  • 我需要把网站做网站制作推广
  • 截图域名网站.发布新闻的平台有哪些
  • 物联网有前途吗知乎关键词排名优化
  • 做桑拿网站挣钱吗深圳关键词优化报价
  • 平面设计网课哪个机构好成都网站seo
  • seo网站内容互联网推广运营
  • 昆山网站建设兼职永久免费自助建站平台
  • 推广外贸网站网络营销策略主要包括
  • 无锡网站怎么做网络营销推广方式包括哪几种
  • 国外html5做的音乐网站网站如何建立
  • 赣州 做网站百度账户
  • 成全视频免费观看在线看第6季动漫版青岛seo公司
  • asp如何做网站目前小说网站排名
  • 大连发布: 大连发布seo营销
  • 二级域名网站可以做360推广网络营销的核心是用户吗
  • 给网站做推广一般花多少钱谷歌seo搜索优化
  • 站长之家ip查询工具爱站关键词
  • 门户网站制作流程成都seo外包
  • 百度推广网站必须备案吗站外推广免费网站
  • 建设银行成都开发中心网站sem数据分析
  • vue做网站对seo最佳bt磁力猫
  • 网站优化流程品牌策划案
  • 衡水做网站找谁武汉竞价托管公司
  • 多少钱可以立案诈骗seo是什么职业岗位
  • 没有基础怎么学网站建设搭建网站平台需要多少钱
  • soho的网站怎么做关键词搜索
  • 网站开发建设价格汕头网站快速优化排名
  • 西安网站制作定制中关村在线app
  • 免费com域名注册网站seo优化方案策划书
  • 网站建设公司账户搭建济南网站优化公司