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

网站浏览器兼容性宣传册设计与制作公司

网站浏览器兼容性,宣传册设计与制作公司,山东天成水利建设 网站,网站怎么建上一篇:算法随笔_26: 按奇偶排序数组-CSDN博客 题目描述如下: 给定一个整数数组 nums#xff0c;坡是元组 (i, j)#xff0c;其中 i j 且 nums[i] nums[j]。这样的坡的宽度为 j - i。 找出 nums 中的坡的最大宽度#xff0c;如果不存在#xff0c;返回 0 。 …上一篇:算法随笔_26: 按奇偶排序数组-CSDN博客 题目描述如下: 给定一个整数数组 nums坡是元组 (i, j)其中  i j 且 nums[i] nums[j]。这样的坡的宽度为 j - i。 找出 nums 中的坡的最大宽度如果不存在返回 0 。 示例 1 输入[6,0,8,2,1,5] 输出4 解释 最大宽度的坡为 (i, j) (1, 5): nums[1] 0 且 nums[5] 5.算法思路: 对于解决此题初步的想法是使用双层循环第一层循环枚举数组每个下标i第二层循环是从右往左寻找下标j 满足nums[i] nums[j]且最大的坡宽度 j - i。nums[i]只要找到了第一个j即可因为继续往左寻找也不会优于当前的j-i的宽度。 在第一层循环全部结束之后我们比较找到的所有下标的最大坡宽度其最大值就是整个数组的最大坡宽度。 接下来我们分析一下看看有没有可以优化的地方。 对于下标i假如以它为左端点的最大宽度坡的右端点在j处那么我们可以基于此分析出如下特征: 1.  大于等于元素i的数全部在j的左侧j右侧全部是比元素i小的数。 2. 对于在i和j之间的下标k如果下标k的元素大于等于下标i的元素那么比元素k大的所有数也必然在j的左侧那么满足条件的k的最右侧端点不可能大于j。因此k的最大坡宽度不可能大于j-i的宽度。 3.  最终的答案只能在下面的几种情形下产生: a.  元素ij之间的宽度就是题目的最终答案。 b.  在ij之间且比元素i小的那些元素中的某个元素做为最终答案的左端点。 c.  在j右侧的所有元素中的某个元素做为最终答案的左端点。根据特征1j右侧全部是比元素i小的数。 因此当我们尝试找最终答案的左端点的时候如果此时已经找到了元素i的最大宽度坡那么我们只需枚举比元素i小的那些元素作为左端点此时的效率就会大大提高。 如果上面提到的元素i就是nums[0]的话我们从左往右枚举数组找到第1个比nums[0]小的元素比如nums[5]后面又找到了nums[9]比nums[0]小但大于等于nums[5]那么我们考虑nums[9]为候选左端点吗结论是不需要。证明如下: 假设nums[5]的最大宽度坡的右端点在nums[p]处因为nums[9]在nums[5]的右侧且大于等于nums[5]根据特征1那就说明nums[9]肯定在nums[p]的左侧。又根据特征2nums[9]的最大宽度坡肯定不会大于nuns[5]最大宽度坡。因此nums[9]不需要作为候选左端点。 因此我们需要继续寻找比nums[5]更小的元素以此类推那所有的候选左端点就是从nums[0]开始单调递减的所有元素。因此我们可以用一个单调栈stack来存储所有左端点的下标。 此时左端点的搜索范围已经缩小我们再来看看如何寻找右端点。 对于右端点我们用指针j从右往左枚举数组。 1. 对于每一个访问的元素j我们让他与stack的栈顶stack[-1]元素做比较如果nums[j] nums[stack[-1]]我们把它们两个的距离做为一个候选的最大宽度坡dst_j。这个值就是栈顶元素做为左端点的最大宽度坡。此时因为我们已经找到栈顶元素的最大宽度坡所以栈顶元素已经不需要我们可以弹出栈顶元素。继续尝试用元素j与下一个栈顶元素比较。重复此步骤。 2. 如果nums[j]  nums[stack[-1]]我们向左移动j一格重复步骤1。 算法整个的代码如下: 注: 我们把计算出的候选最大宽度坡与变量w_max不断比较取当前最大值存入w_max。最终的w_max就是答案。 class Solution(object):def maxWidthRamp(self, nums):w_max0stack[]nums_lenlen(nums)for i in range(nums_len):if i0:stack.append(i)elif nums[i]nums[stack[-1]]:stack.append(i)for j in range(nums_len-1,-1,-1):if len(stack)0:breakleftstack[-1]while nums[j]nums[left]:w_maxmax(w_max, j-left)stack.pop()if len(stack)0:breakleftstack[-1]return w_max
http://www.tj-hxxt.cn/news/221534.html

相关文章:

  • 做网站多少费用在哪个网站可以做二建的题
  • 国内做网站大公司网站策划职业规划
  • 哪个网站做ppt好蓬莱网站设计
  • 网站是否有备案网页制作公司业务部门负责人工作
  • 东营网站建设费用网络营销推广的技巧有哪些
  • 电商网站安全解决方案盐城有没有做网站吗
  • 网站建设设计费用南昌官网seo厂家
  • 网站开发 百度云资阳网站设计
  • 中外网站建设区别升级wordpress导入工具
  • 番禺网站建设哪里好wordpress如何安装
  • 数据录入网站开发wordpress 干净主题
  • 富德生命人寿保险公司官方网站保单服务福田做网站需要多少钱
  • 网站 演示代码游戏门户网站开发资源
  • 做淘宝联盟必须要有网站吗吴堡网站建设费用
  • 中国八冶建设集团网站五莲县财源建设网站
  • 深圳企业做网站公司哪家好二级网页制作教程
  • 课程微网站开发技术wordpress多域名图标
  • 如何找网站建设客户陕西教育建设信息网站
  • 现在还用dw做网站设计么顺德网站制作案例教程
  • 配色相关网站南江红鱼洞水库建设管理局网站
  • 广州建设监理协会网站wordpress设置中文失败
  • 深圳网站建设网络wordpress判断子分类
  • 网站服务合同范本抑郁症状有哪些表现免费咨询
  • 网站默认图片素材wordpress 数据调用api接口
  • 简单网站建设合同模板湛江建设网官方网站
  • 专业网站建设的公司seo百度优化排名
  • 网站建设是如何寻找客户的产品展示网站建设
  • 在iis搭建网站win7版本wordpress
  • 哪些网站做高尔夫旅游怎么看公司网站是哪里做的
  • 网站你懂我意思正能量免费软件迪虎科技网站建设