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

适合个人做的网站国内新闻摘抄

适合个人做的网站,国内新闻摘抄,网址导航程序,wordpress仿异次元主题给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入: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] …

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

示例 1:

输入: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 个单位的雨水(蓝色部分表示雨水)。 

示例 2:

输入:height = [4,2,0,3,2,5]
输出:9

提示:

  • n == height.length
  • 1 <= n <= 2 * 104
  • 0 <= height[i] <= 105

题解

这道题是双指针里面困难级别的题

我一开始的想法是用两个指针分别从左右两边出发,两边都是判断当前木板的高度是否低于先前碰到的最高的木板,如果是,那么累加二者的高度差,这样的思路基于一个前提:前面存在更高木板可以把水给罩住

但是存在一种情况,那就是一开始碰到的木板就是最高的,所以这种思路不行

官方给的思路是左右两边都计算一次,然后取二者间最小的

我在实现官方的思路的时候,想到了一种新的方法,一开始就去找到最高的那个木板所在的地方,仍然从左右两边出发去计算,但是碰到最高的地方我就停下来不算了

完美解决

class Solution {
public:int trap(vector<int> &height) {int highest = 0;for (int i = 0; i < height.size(); i++) {if (height[i] > height[highest])highest = i;}int left = height[0], right = height[height.size() - 1], drop = 0, i = 1, j = height.size() - 2;while (i < highest) {if (height[i] < left) {drop += left - height[i];} else {left = height[i];}i++;}while (j>highest) {if (height[j] < right) {drop += right - height[j];} else {right = height[j];}j--;}return drop;}
};
http://www.shuangfujiaoyu.com/news/28223.html

相关文章:

  • 佛山网站哪家最专业网络推广的手段
  • 手机 网站 分辨率网页设计代做
  • 做网站游戏推广赚钱吗谷歌浏览器安卓版
  • wordpress建站教程视频seo优化软件大全
  • 云凡济南网站建设开发昆明seo网站建设
  • 上海网站建设免seo网络推广报价
  • 快站优惠券百度快照是什么意思?
  • 建设工程信息在什么网站发布计算机培训班有用吗
  • 邯郸信息港求职信息手机优化大师官网
  • 成都网站建设价格免费站推广网站不用下载
  • 网站建设 银川网站怎么进入
  • 帝国系统做企业网站百度快照怎么没有了
  • 阳江市做网站的公司郑州网站推广哪家专业
  • 上海 餐饮网站建设 会员系统网络平台推广方式
  • 连云港做网站西安关键词排名优化
  • 那里做网站比较好有哪些平台可以发布推广信息
  • cpanel转移网站成都百度推广优化创意
  • 青岛做外贸网站建设seo主要优化
  • 建站快车管理专业网站优化
  • 杭州模板网站建设网站建设找哪家好
  • 做公司网站需要了解哪些东西百家号官网
  • 武汉手机网站建设信息搜索大全引擎入口网站
  • 网站设置怎么调营销策划与运营公司
  • 蚌埠集团网站建设矿泉水软文广告500字
  • 关于网站建设的申请报告潮州seo
  • 河池市建设与规划委员会网站登封网络推广公司
  • 佛山网站seo推广沧州公司电话
  • 江西网站建设平台淘宝seo培训
  • 南宁网络推广建站搜一搜
  • 如何形容一个网站做的好游戏推广公司怎么接游戏的