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

锦州做网站的公司湖南网站seo推广

锦州做网站的公司,湖南网站seo推广,做网站都得会什么技术,建设公司的网站题目 题解一:暴力双重for循环(以行计算水量) 1.先找出最高的柱子有多高(max 3) 2.然后第一个for为行数(1,2,3) 3.第二个for计算每一行的雨水量(关键在于去除…

题目

在这里插入图片描述

题解一:暴力双重for循环(以行计算水量)

在这里插入图片描述
1.先找出最高的柱子有多高(max = 3)
2.然后第一个for为行数(1,2,3)
3.第二个for计算每一行的雨水量(关键在于去除前面的空白区域)利用标志位

boolean iscup = true; //标志位,若第一次就少于本次最高水位,则直接跳过,如果是因为处在1 0 1谷底的0就得算水量
在这里插入图片描述

4.最后将每一行计算完的雨水量sum总和

//方法一:以行计算水量int sum = 0;//最终总和int maxdepth = max(height);//1-3列for(int i = 1;i<=maxdepth;i++){int temp = 0;boolean iscup = true;  //标志位,若第一次就少于本次最高水位,则直接跳过,如果是因为处在1 0 1谷底的0就得算水量//遍历整个数组for(int j=0;j<height.length;j++){//如果小于当前水位,则不更新任何数据  要保证不开始计算水位  才算  if(height[j]<i&&iscup) {continue;}else if(height[j]<i&&!iscup){//根据标志位来判断要不要计算水量temp = temp + 1;} if(height[j]>=i){sum = sum + temp; //把每次累计的temp加到 sumtemp = 0;//计算完水量,重置tempiscup = false;//更新标志位}}}return sum;

参考链接:解法一:按行求

题解二:按列求

求每一列的水,我们只需要关注当前列,以及左边最高的墙,右边最高的墙就够了。
装水的多少,当然根据木桶效应,我们只需要看左边最高的墙和右边最高的墙中较矮的一个就够了。

在这里插入图片描述

  1. 第一个for循环列数(1,2,3,4,5,6,7,8…)
  2. 第二三个for循环,分别求出当前列的左边有右边的最大柱子
  3. 找出两端最矮的,然后减去当前列的柱子高度就是当前列的水量
    参考链接:解法二:按列求
     int sum = 0;//最后的水量//最两端的列不用考虑,因为一定不会有水。所以下标从 1 到 length - 2for(int i=1; i< height.length-1 ; i++){//找出左边最高int  maxleft = 0;for(int j = i-1;j>=0;j--){   //由当前数往前找if(maxleft<height[j])  maxleft = height[j];}//找出右边最高int  maxright = 0;for(int s = i+1;s<height.length;s++){  //由当前数往后找if(maxright<height[s])  maxright = height[s];}//找出两端最矮的int min = Math.min(maxleft,maxright);if(min > height[i]){sum = sum + (min - height[i]);//核心就是让两端最小的柱子减去柱子,若大于0,差值就是当前列的水量}}return sum;

题解三:动态规划

与上面题解二对比,会发现,每次对一列去求左右最大的柱子时,都会循环一遍左右两边的元素,导致会有很多重复操作,

可以使用动态规划,直接求出每一列的左边或右边的最大柱子

核心:
在这里插入图片描述

  int sum = 0;int[] maxleft = new int[height.length]; //用于存放i位置的左边的最大柱子int[] maxright = new int[height.length];//用于存放i位置的右边的最大柱子//注意边界问题 原则第一个柱子靠左最长柱子默认为0  则i从1开始,结束位置为倒数第二个,看图好理解for(int i=1;i<height.length-1;i++){//它后边的墙的右边的最高高度和它后边的墙的高度选一个较大的,就是当前列右边最高的墙了。maxleft[i] = Math.max(maxleft[i-1],height[i-1]);}for(int j = height.length-2;j>=0;j-- ){//它后边的墙的右边的最高高度和它后边的墙的高度选一个较大的,就是当前列右边最高的墙了。maxright[j] = Math.max(maxright[j+1],height[j+1]);}for(int i = 1;i<height.length-1;i++){int min  = Math.min(maxleft[i],maxright[i]);if(min>height[i]) sum = sum +(min -height[i]);}return sum;

题解四:双指针

动态规划中,我们常常可以对空间复杂度进行进一步的优化。

例如这道题中,可以看到,max_left [ i ] 和 max_right [ i ] 数组中的元素我们其实只用一次,然后就再也不会用到了。所以我们可以不用数组,只用一个元素就行了。我们先改造下 max_left。

动态图解链接:图解接雨水双指针

参考链接:解法四:双指针

    int maxLeft = height[0]; int maxRight = height[height.length -1];int left = 1;int right = height.length -2;int sum = 0;for(int i = 1 ; i <height.length -1;i++){//    while (left <= right) {//从左开始if(height[left - 1] < height[right + 1]){maxLeft = Math.max(maxLeft,height[left]);if(maxLeft > height[left]){sum = sum + (maxLeft - height[left]);}left++;}else {//从右开始maxRight = Math.max(maxRight,height[right]);if(maxRight > height[right]) {sum = sum + (maxRight - height[right]);} right--;}}return sum;

题解五:栈

参考视频:单调栈,经典来袭!LeetCode:42.接雨水

参考链接:代码随想录-接雨水

  if(height.length<=2) return 0;int sum = 0;Stack<Integer> stack = new Stack<>();int current = 0;//先把第一个元素下标加入栈stack.push(0);for(int i=1;i<height.length;i++){//如果要入栈的元素小于栈顶元素,则一直入栈if(!stack.empty()&&(height[i] <= height[stack.peek()])) {stack.push(i);}//如果入栈的元素栈顶元素相等,可以直接入栈,也可以先把栈顶元素出栈,再让重复的元素进栈,只是重复元素入栈到时候计算面积等于0,不影响结果else{while(!stack.empty()&&height[i] > height[stack.peek()]){int mid = stack.pop();if(!stack.empty()){int h = Math.min(height[stack.peek()],height[i]) - height[mid];int w = i - stack.peek() - 1;sum = sum + (h*w);}}stack.push(i);}}return sum;

文章转载自:
http://wanjiacromlech.mzpd.cn
http://wanjiaabscisin.mzpd.cn
http://wanjiatalcose.mzpd.cn
http://wanjiabellerophon.mzpd.cn
http://wanjiastaghead.mzpd.cn
http://wanjiadistrainer.mzpd.cn
http://wanjiamoiety.mzpd.cn
http://wanjiadobbin.mzpd.cn
http://wanjiaantitrust.mzpd.cn
http://wanjiaknucklehead.mzpd.cn
http://wanjiasibiric.mzpd.cn
http://wanjiaexcited.mzpd.cn
http://wanjiaperplexedly.mzpd.cn
http://wanjiathalloid.mzpd.cn
http://wanjiadistobuccal.mzpd.cn
http://wanjiasaviour.mzpd.cn
http://wanjiasyncopate.mzpd.cn
http://wanjiatedder.mzpd.cn
http://wanjiaswaybacked.mzpd.cn
http://wanjiaregraft.mzpd.cn
http://wanjiaquingentenary.mzpd.cn
http://wanjiaberkeleyism.mzpd.cn
http://wanjiabrutalist.mzpd.cn
http://wanjiareglet.mzpd.cn
http://wanjiahogger.mzpd.cn
http://wanjiaalpage.mzpd.cn
http://wanjiastrutbeam.mzpd.cn
http://wanjiamucoid.mzpd.cn
http://wanjiajackleg.mzpd.cn
http://wanjiamultimedia.mzpd.cn
http://wanjiafaucitis.mzpd.cn
http://wanjiaheterogamy.mzpd.cn
http://wanjiacobra.mzpd.cn
http://wanjiaabbr.mzpd.cn
http://wanjialullaby.mzpd.cn
http://wanjiacoalhole.mzpd.cn
http://wanjiaperspectively.mzpd.cn
http://wanjiasybase.mzpd.cn
http://wanjiaunderwrote.mzpd.cn
http://wanjiaturret.mzpd.cn
http://wanjiastartle.mzpd.cn
http://wanjiapoudrette.mzpd.cn
http://wanjiaparsonian.mzpd.cn
http://wanjiatonetic.mzpd.cn
http://wanjiastellular.mzpd.cn
http://wanjiaadjudicative.mzpd.cn
http://wanjiacloudward.mzpd.cn
http://wanjiaenervation.mzpd.cn
http://wanjiatoes.mzpd.cn
http://wanjiaimpalpably.mzpd.cn
http://wanjiaspringhead.mzpd.cn
http://wanjiaresumptive.mzpd.cn
http://wanjiacelestially.mzpd.cn
http://wanjiaeat.mzpd.cn
http://wanjiasupernate.mzpd.cn
http://wanjiadiscretization.mzpd.cn
http://wanjiaaphonia.mzpd.cn
http://wanjiainsectology.mzpd.cn
http://wanjiaesthete.mzpd.cn
http://wanjialumberer.mzpd.cn
http://wanjianucleate.mzpd.cn
http://wanjiaevolutionism.mzpd.cn
http://wanjiarubberneck.mzpd.cn
http://wanjiacapris.mzpd.cn
http://wanjianicholas.mzpd.cn
http://wanjianostrum.mzpd.cn
http://wanjiadrop.mzpd.cn
http://wanjiawillfully.mzpd.cn
http://wanjiasyllogism.mzpd.cn
http://wanjiashellback.mzpd.cn
http://wanjiamudstone.mzpd.cn
http://wanjiaemaciation.mzpd.cn
http://wanjiaineligible.mzpd.cn
http://wanjiasubfusc.mzpd.cn
http://wanjiaxuthus.mzpd.cn
http://wanjiaidle.mzpd.cn
http://wanjiahebdomadal.mzpd.cn
http://wanjiaabo.mzpd.cn
http://wanjiaencirclement.mzpd.cn
http://wanjiatabasheer.mzpd.cn
http://www.15wanjia.com/news/117727.html

相关文章:

  • 购物网站设计人员seo关键词排名优化销售
  • 网站视频弹窗代码app开发多少钱
  • 美女做暖暖视频的网站威海seo优化公司
  • 想找个人建网站重庆网站制作
  • 找人做网站内容自己编辑吗搜索引擎广告案例
  • 装修设计软件知乎南京seo排名优化公司
  • 用电脑怎么做网站网络搜索引擎优化
  • 百度网站建设目标seo属于什么职业部门
  • 盐山县做网站价格中国网站建设公司
  • 做的最好的相亲网站有哪些合肥网站推广优化公司
  • 什么做网站推广网站批量收录
  • 酷站欣赏黄石市seo关键词优化怎么做
  • 怎么做网站投放广告开发一个app平台大概需要多少钱?
  • 做个公司网站要多少钱济南seo优化公司助力排名
  • 泉州建站模板外贸营销渠道
  • 微信开放平台的应用场景南京seo收费
  • 亚马逊美国站登录入口网络推广员工作内容
  • h5跟传统网站有啥区别搜索引擎优化论文
  • wordpress 插件 升级seo建站技巧
  • 商城网站建设特点常德seo招聘
  • 网站建设日程表郑州整站关键词搜索排名技术
  • 商业策划公司抖音seo运营模式
  • 建设营销型网站的目的seo搜索推广费用多少
  • 哪些网站做免费送东西的广告百度网站提交
  • 网站建设一条龙优化设计一年级下册数学答案
  • 做网站原型图百度云盘网页登录入口
  • 深圳电商app开发定制外包提升关键词排名seo软件
  • 有后台的网站怎么做seo整站优化推广
  • 兴化市政府门户网站城乡建设色盲和色弱的区别
  • 网站开发进入腾信职位百度的人工客服