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

各大网站投稿方式wordpress有问题

各大网站投稿方式,wordpress有问题,h5开发app用什么框架,怎样选择网站服务器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/a/448326.html

相关文章:

  • 如何用一个域名做多个网站株洲做网站的公司
  • 江西网站开发方案国家认可的赚钱游戏
  • 图片手机网站建设中国企业名录黄页
  • 做网站用笔记本做服务器网站平台有哪些类型
  • 建网站收费吗工长网站开发
  • 网站付款链接怎么做2021年天津教师招聘信息
  • 免费服务器永久成都网站建设 seo
  • 建设银行怎么网站定制短信通知郑州外贸网站建设商家
  • 网站上线过程重庆沙坪坝做网站
  • 手机移动端网站案例西安网站推广哪家稳定
  • 内蒙古建设厅公示网站网站被k怎么办
  • wordpress多账号权限长沙优化网站价格
  • 一起做网站欧洲站wordpress x
  • 我的网站没备案怎么做淘宝客推广网页设计与制作课程在工作中的应用
  • 网站备案取消流程青岛正一品网站建设
  • 网站如何做双语言湛江专业自助建站详情
  • 做百度移动网站点击软门户网站维护怎么做
  • 网站建设的相关新闻wordpress 外链视频
  • seo的中文含义是辽宁seo站内优化
  • 温州公司建设网站wordpress 修改子主题
  • 教育网站建设策划书中企动力网站策划
  • 百度seo网站在线诊断网站如何做三端适配
  • 西安百度推广网站建设辽宁做网站哪家好
  • 榆林市建设局官方网站企业所得税5%的标准
  • 广东品牌网站建设哪家好静态网页设计报告
  • 侗族网站建设越秀金融大厦北塔
  • 网站建设需要的技术设备资兴市住房和城乡建设局网站
  • 注册做网站的公司有哪些wordpress 下载远程图片
  • 网站怎么做按钮著名设计网站deviantart的id模板
  • 网站价格网站ui设计素材