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

怎么把网站制作成安卓企业宣传片

怎么把网站制作成安卓,企业宣传片,wordpress覆盖水印,公司网站主页设计图片本文为Python算法题集之一的代码示例 题目42:接雨水 说明:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1]…

     本文为Python算法题集之一的代码示例

     题目42:接雨水

     说明:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水

示例 1:

img

输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 

     注意:代码运行速度每次都不同,估计服务器负载有波动

  1. 分层双指针,差强人意

    ​      对图像进行分析,接雨水后高度为n+1的雨水一定在高度为n的雨水底座之上,类似金字塔;因此按高度分层,左右指针逐步向中间靠拢,最后得出雨水面积。此算法较为复杂,最终效果也差强人意。
    在这里插入图片描述

    def trapRainWater_ext1(height):     # 分层双指针,按高度逐层上升ilen = len(height)ileft, iright, iSumbottom, iSumlevel, iLevel = 0, ilen - 1, 0, 0, 1while (ileft <= iright):while (ileft <= iright and height[ileft] < iLevel):iSumbottom += height[ileft]ileft += 1while (iright >= ileft and height[iright] < iLevel):iSumbottom += height[iright]iright -= 1iLevel += 1iSumlevel += iright - ileft + 1return iSumlevel - iSumbottomprint(trapRainWater_ext1([0,1,0,2,1,0,1,3,2,1,2,1]))
    # 运行结果
    6
    
  2. 几何裁剪,数学之美,超越93%

    基于几何图像分析,从左向右投射到最高峰,从右向左投射到最高峰,这两个面积相加,减去最高峰*宽的最高峰面积,就是装满雨水后的轮廓面积;这个轮廓面积再减去底座面积,就得出雨水占据的面积。

     此算法简洁优雅,寥寥数行,速度居然超越93%的通过者
     原来科学的尽头是玄学,美学的尽头是数学
在这里插入图片描述

def trapRainWater_ext2(height): # 雨水面积=左边投射面积+右边投射面积-最高峰面积-底座面积result, hleft, hright = 0, 0, 0for iIdx in range(len(height)):hleft = max(hleft, height[iIdx])hright = max(hright, height[-iIdx - 1])result += hleft + hright - height[iIdx]return result - len(height) * hleftprint(trapRainWater_ext2([0,1,0,2,1,0,1,3,2,1,2,1]))
# 运行结果
6
  1. 双指针法,超越93%

    ​      抛弃高度分层的思路,直接使用左右指针相互靠拢;相当于去掉了一个中间层。轻装上阵后,效果也大大提高,代码虽然没有数学家优雅,效率也是超越了93%的通过者
    在这里插入图片描述

    def traRainWater_ext3(height):  # 双指针收缩iLen = len(height)result, ileft, ileftMax, iright, irightMax= 0, 0, 0, iLen - 1, 0while ileft < iright:ileftMax = max(ileftMax, height[ileft])irightMax = max(irightMax, height[iright])if height[ileft] < height[iright]:result += ileftMax - height[ileft]ileft += 1else:result += irightMax - height[iright]iright -= 1return resultprint(trapRainWater_ext3([0,1,0,2,1,0,1,3,2,1,2,1]))
    # 运行结果
    6
    
  2. 堆栈大法超越97%

    ​      堆栈是编译原理中最常见的数据结构,采用堆栈来读取数组,精准分析雨水槽位置和面积,形成了降维打击。此算法超越97%的通过者,可谓是堆栈一出,谁与争锋
    在这里插入图片描述

    def trapRainWater_ext4(height):     # 使用堆栈计算雨水槽stackDef = []res = 0for iIdx in range(len(height)):while stackDef and height[iIdx] > height[stackDef[-1]]:cur = stackDef.pop()if not stackDef:breakiHeight = min(height[iIdx], height[stackDef[-1]]) - height[cur]iWidth = iIdx - stackDef[-1] - 1res += iHeight * iWidthstackDef.append(iIdx)return resprint(trapRainWater_ext4([0,1,0,2,1,0,1,3,2,1,2,1]))
    # 运行结果
    6
    

    一日练,一日功,一日不练十日空

    may the odds be ever in your favor ~

http://www.ds6.com.cn/news/120880.html

相关文章:

  • 网站自己可以做么宽带业务如何推广
  • 罗湖区住房和建设局免费seo网站自动推广软件
  • 大岭山镇仿做网站今日头条搜索优化
  • b2b哪个免费网站好百度长尾关键词挖掘
  • 有专门做市场分析的网站么一般网站推广要多少钱
  • 推广网站怎么做网站免费推广的方法
  • wordpress站点logo多大合适百度网盘云资源搜索引擎
  • 什么是分类信息网站营销八八网
  • 福州网站建设网络公司申请域名的方法和流程
  • 天津河东区网站建设家庭优化大师下载
  • 天河建设网站哪个好字节跳动广告代理商加盟
  • 广州网站外贸推广seo技术好的培训机构
  • iapp网站做软件推广竞价托管公司
  • 郑州富士康搬迁了吗最新消息seo排名优化首页
  • 大气宽屏企业网站源码seo优化软件
  • 阿里云一键建站网站网站管理
  • 哈尔滨网站开发公司排行榜广州aso优化
  • 品牌网站设计企业服务百度网盘登录入口网页版
  • 网站开发寻找潜在客户的途径微信公众号营销
  • 电影项目做产品众筹哪个网站好google play官网
  • wordpress 二维码插件整站优化 mail
  • 服装企业 北京 网站建设模板之家官网
  • 营销型网站开发方案热门推广软件
  • 帝国cms企业网站模板关键词语有哪些
  • nodejs做的网站免费网站友情链接
  • 期货交易网站开发手机百度收录提交入口
  • 租房信息网站建设网站怎么做谷歌推广
  • 广西建设部网站互联网关键词优化
  • 二级目录怎么做网站小吃培训
  • 呼和浩特市网站建设公司制作网站要找什么公司