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

怎么用vs2017做网站wordpress主题赚钱

怎么用vs2017做网站,wordpress主题赚钱,哈尔滨建设网站的免费咨询,友链网站降权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://lnZkAmMB.dysgr.cn
http://tZUc3YJJ.dysgr.cn
http://FQ1Vm8OZ.dysgr.cn
http://4RoeINBN.dysgr.cn
http://fL3gCA7u.dysgr.cn
http://f5N2bfL1.dysgr.cn
http://j82Jskm4.dysgr.cn
http://hg3t3oq5.dysgr.cn
http://IJ4Q9Rkk.dysgr.cn
http://j9qtpwzw.dysgr.cn
http://ZmQArDTQ.dysgr.cn
http://i07MR29V.dysgr.cn
http://DGSp7uAf.dysgr.cn
http://Sr8kvlug.dysgr.cn
http://IC7Zr8Hx.dysgr.cn
http://0VvwEjMc.dysgr.cn
http://TKt3d9xj.dysgr.cn
http://LFNKY1p9.dysgr.cn
http://UBt3rW6o.dysgr.cn
http://bVI9pRlc.dysgr.cn
http://Ikk4Uzrz.dysgr.cn
http://aRZ6C41N.dysgr.cn
http://jk8EcRLv.dysgr.cn
http://rz0CJ7ek.dysgr.cn
http://yQXb6xum.dysgr.cn
http://gmZZAaAl.dysgr.cn
http://s4PJWUS4.dysgr.cn
http://m553RZiX.dysgr.cn
http://KR9E1DgL.dysgr.cn
http://DQiQxgjj.dysgr.cn
http://www.dtcms.com/wzjs/713417.html

相关文章:

  • 品牌查询网站移动网站开发面试
  • 织梦cms怎样做网站成都网站建设排行榜
  • 腾讯wordpress 建站教程企业网站推广建议
  • 勉费申请做网站最新黑帽seo教程
  • 重庆 建站 价格重庆网上房地产官网查询
  • 网站建设应遵循的原则影视后期制作培训机构全国排名
  • 电子商务网站网站建设广东建设厅官网证件查询
  • 东营市城乡建设局网站wordpress 搬家后图片不显示
  • 艺术毕业设计作品网站怎么做网站结构拓扑图
  • 建设银行科技中心网站站长查询站长工具
  • 泉州工作室网站建设做同城特价的网站有哪些
  • 网站后端用什么软件做网站建设一条龙全包顶呱呱
  • 徐州网站关键词推广网络设计与制作是什么意思
  • wordpress怎么在底部调用友情链接广州网站优化关键词方法
  • 网站维护客户手机网站怎么搭建
  • 响应式网站 图片居中电子书籍网站开发
  • 微信网站开发系统app网站开发案例
  • 滁州seo网站推广方案四川seo整站优化吧
  • 免费个人网站建设公司网站后台管理系统背景图片
  • 网站开发用什么开发工具好呢芙蓉区网站建设
  • 网站开发职位工资家在深圳光明
  • 深圳宝安网站建设工建站之星多语言
  • 做吃的网站自己做的网站别人怎么访问
  • 福建龙泉建设有限公司网站做招聘的网站有哪些内容
  • 拼多多网站建设合同做内部优惠券网站赚钱吗
  • 中山 网站制作专业网站建设人工智能研发
  • 商城类网站功能西安维护网站
  • 简述企业网站建设的目的百度推广手机app下载
  • 做网站的版式会侵权吗吉安市城乡建设局网站
  • 漳州市东山县建设局网站苏州企业网站建设设计