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

哪里培训网站开发好建行网银

哪里培训网站开发好,建行网银,cms做企业网站6,中国科技发展成果这道题也可以用双指针情景:如果有一个木桶,做桶高为left,右桶高为right,桶的底座厚height,则水可以接的面积为:Volume min(left, right) - height,即总是以桶最短的边减去底座装满水。解题思路…

 这道题也可以用双指针

情景:如果有一个木桶,做桶高为left,右桶高为right,桶的底座厚height,则水可以接的面积为:

Volume = min(left, right) - height,即总是以桶最短的边减去底座装满水


解题思路: 

  1. 双指针从桶的最左边[0]和最右边[length-1]开始
  2. 记录当前桶的左边桶高为height[left]和height[right],将left_max = height[left]和right_max = height[right]此时无法接水。
  3. 由于总是以桶最短的边减去底座装满水:
    1. 如果left_max > right_max:移动短桶边(也就是right_max一边)使right--。
    2. 移动后,若height[right] 比 right_max 小,则该格接水公式为:V = min(left, right) - height[right]。将每一个格子接水累加,得到最终答案。
    3. 移动后,若height[right] 比 right_max大,则将right_max更新为当前桶高。
    4. 判断左右边界桶高,重复1-2-3的步骤,左右同理。

关键理解点1:不论如何,right指针和left指针最终会汇聚到height最高的一列,也就是Math.max(...height)

关键理解点2:每一格为最小单位,它总是以桶最短的边减去底座高度装水。

结合代码更好理解,代码如下:

var trap = function (height) {let ans = 0;let left = 0;let right = height.length - 1;let left_max = 0;let right_max = 0;while (left < right) {left_max = Math.max(height[left], left_max);right_max = Math.max(height[right], right_max);if (left_max < right_max) {ans = ans + left_max - height[left];left++;} else {ans = ans + right_max - height[right];right--;}}return ans;
};

http://www.dtcms.com/a/563216.html

相关文章:

  • 黑河企业网站建设公司成都到西安自驾游最佳路线
  • 做外贸网站用什么空间无锡做网站多少钱
  • 自家房子做民宿的网站win2008sr怎么用iis做网站
  • 泉州专业网站建设莆田网站关键词优化
  • 昆明展示型网站开发邯郸哪里可以做网站
  • 南昌做网站电话wordpress 文章属性
  • 正安县网站seo优化排名益阳网站设计公司
  • 网站开发语言那个好网站 自适应文字大小怎么做
  • 购物网站怎么创建哪个浏览器可以做网站
  • 网站做移动端字母logo在线设计
  • 最便宜网站空间企业制作网站一般多少钱
  • 龙港做网站中国空间站机械臂
  • 天津网站模板建站建设网站 莆田
  • 网站建设怎么让网站收录建设网络平台交印花税
  • 路由器 东莞网站建设银川网站推广方式
  • 大良网站建设基本流程深圳网站制作台
  • 统计助手小程序怎么制作株洲seo优化高手
  • 做win精简系统的网站js弹出网站
  • 网站开发环境包括什么网站建设+荆州
  • 网站建设案例图片定西兰州网站建设
  • 湘潭做网站优化初中做历史的网站
  • 网站国际化怎么做网站程序文件
  • 兖州建设局网站燕莎做网站
  • 西安官网seo公司网络优化大师app
  • 摄像头监控视频怎么做直播网站wordpress 放大镜插件
  • 网站开发代码用什么软件wordpress数据库怎么设置
  • 在iis里面创建网站洛阳建设银行官方网站
  • 全国新农村建设网站做导航网站备案
  • 电子商务网站建设期中广东建设工程质量安全协会网站
  • 北京海淀公司注册张家界seo