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

怎么用vs2017做网站郑州专业喷绘制作公司

怎么用vs2017做网站,郑州专业喷绘制作公司,负责网站建设推广,最简单制作网页1.题目描述 2.思路 方法1(自己想的): 首先把最边上接不到水的柱子删掉,以减少开销。 left 0,right 1,left暂时固定住,right向右走。若right比上个柱子低,就将(left - right)加到…

1.题目描述

2.思路

方法1(自己想的):

首先把最边上接不到水的柱子删掉,以减少开销。

left = 0,right = 1,left暂时固定住,right向右走。若right比上个柱子低,就将(left - right)加到res里;若right比上个柱子高但比left低,就将(left - right)加到res里;若right比left高,则将left更新为right。

需要考虑的特殊情况是形如[..., 3, 2, 1, 2]的柱子,按上面这种方法计算出来的res(4)会比真实值(1)大3,所以如果在上面的方法结束后left处柱子的高度大于最后一根柱子的高度,则需要把left到末尾的这段雨水量删掉,然后从最后一根倒着向left再重复一遍上述方法,计算出实际的雨水量加进res里面。

方法2(官方题解的动态规划):

下标i处能接到的雨水量等于下标i两边最大高度的最小值减去height[i],因此,创建两个长度为len(height)的数组left_max和right_max分别记录下标i及其左边、右边height的最大高度。

方法3(官方题解的相向双指针):

方法2中下标i处能接的雨水量由left_max和right_max中的最小值决定,由于left_max和right_max分别是从左向右、从右向左计算的,因此可以使用双指针left、right和两个变量left_max、right_max代替两个数组。

方法4(灵茶山艾府佬的相向双指针):

很牛逼的方法,不知道别人是怎么想出来的,我要读懂人家代码都费劲。

3.代码(Python3)

方法1:

class Solution:def trap(self, height: List[int]) -> int:res = 0left_pos = 0# 删掉左边接不到水的柱子for i in range(len(height) - 1):if height[i] <= height[i + 1]:left_pos += 1else:breakheight[:] = height[left_pos :]right_pos = len(height) - 1# 删掉右边接不到水的柱子for i in range(len(height) - 1):if height[len(height) - i - 1] <= height[len(height) - i - 2]:right_pos -= 1else:breakheight[:] = height[: (right_pos + 1)]# 只剩一个柱子if len(height) == 1:return 0# 从左往右走,初始化临时固定的左边界和一直在移的右边界left, right, tail_height = 0, 1, heightwhile left != (len(height) - 1):cur_volume = 0while height[left] > height[right]:cur_volume += (height[left] - height[right])right += 1if right == len(height):breakif right == len(height):if height[left] > height[right - 1]:if left == 0:tail_height = height[:: -1]else:tail_height = height[: (left - 1) : -1]breakres += cur_volumewhile height[left] <= height[right]:left, right = right, right + 1if left == (len(height) - 1):break# 从右往左走if height != tail_height:left, right = 0, 1while left != (len(tail_height) - 1):cur_volume = 0while tail_height[left] > tail_height[right]:cur_volume += (tail_height[left] - tail_height[right])right += 1res += cur_volumewhile tail_height[left] <= tail_height[right]:left, right = right, right + 1if left == (len(tail_height) - 1):breakreturn res

方法2:

class Solution:def trap(self, height: List[int]) -> int:res = 0n = len(height)left_max = [height[0]] + [0] * (n - 1)right_max = [0] * (n - 1) + [height[-1]]for i in range(1, n):left_max[i] = max(left_max[i - 1], height[i])right_max[n - i - 1] = max(right_max[n - i], height[n - i - 1])for i in range(n):res += (min(left_max[i], right_max[i]) - height[i])return res

方法3:

class Solution:def trap(self, height: List[int]) -> int:res = 0left, right = 0, len(height) - 1left_max = right_max = 0while left < right:left_max = max(left_max, height[left])right_max = max(right_max, height[right])if height[left] < height[right]:res += left_max - height[left]left += 1else:res += right_max - height[right]right -= 1return res

方法4:

class Solution:def trap(self, height: List[int]) -> int:res = 0stack = []for i, h in enumerate(height):while stack and h >= height[stack[-1]]:bottom_h = height[stack.pop()]if not stack:breakleft = stack[-1]cur_h = min(height[left], h) - bottom_hres += cur_h * (i - left - 1)stack.append(i)return res

4.执行情况

方法1:

方法2:

方法3:

方法4:

5.感想

方法1是我自己想出的狗屎办法,虽然时间复杂度挺可观的但是代码可读性极差,又臭又长使我反胃,我自己都不愿再读第二遍,而别人的代码都非常优雅,不得不说我的脑子还是有点欠发达了。。。

http://www.dtcms.com/wzjs/553665.html

相关文章:

  • 网站外链建设可以提升网站权重对吗网站注册界面代码
  • 如何判断网站做的关键词南昌企业做网站设计
  • 深圳专业的网站制作公司少儿python基础教程
  • 深圳微商城网站设计价格网站 售后服务
  • 医院网站建设投标书重庆最好的网站建设公司
  • 建筑建设规范网站购买域名有什么用
  • 搭建企业网站宽带多大网络营销的概念和定义
  • 企业官网有哪些开封网站优化公司
  • 第一设计广州网站seo招聘
  • 青岛建网站手把手wordpress仿站
  • 关于网站得精神文明建设wordpress文件目录
  • 做ppt好的模板下载网站完整网站建设案例教程
  • 南头外贸网站建设嘉兴模板建站公司
  • 企业网站建设方案渠道成品源码1988
  • 电商网站的模块珠海酒店网站建设
  • 郑州企业网站模板建站中升乙源建设工程有限公司网站
  • 网站安全性怎么做wordpress 详情页
  • 专业手机移动网站设计珠三角做网站
  • 做网站快速赚钱外发加工单表格范本
  • 提高网站粘性icp是什么意思啊
  • 推广网站有哪些比较好做的网站怎么查看点击率
  • 漳平建设局网站做网站成品
  • 做网站需要什么基础关键词优化公司前十排名
  • 网站开发不用框架门户网站建设中存在的问题
  • 律师论坛网站模板网站建设哪里培训
  • 网站做外链的具体步骤潮州市工程建设网站
  • 网络互动公司排名关键词优化推广
  • 济南手工网站建设公司06628 网页制作与网站开发
  • 关闭网站跳转代码重庆新闻app
  • 深圳南山网站建设有人有片资源吗免费的视频