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

星夜智能建站平台山东兴润建设集团网站

星夜智能建站平台,山东兴润建设集团网站,网站的站点地图设计,国外海报设计网站目录 题目 题目初步解析 水桶效应 代码实现逻辑 第一步 第二步 第三步 代码具体实现 注意 添加容器元素的函数 计算迭代并且判断面积是否是最大值 总代码 运行结果 总结 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线#xff0c;第 i 条线的两个端点是…目录 题目 题目初步解析 水桶效应 代码实现逻辑 第一步 第二步 第三步 代码具体实现 注意 添加容器元素的函数 计算迭代并且判断面积是否是最大值 总代码 运行结果 总结 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明你不能倾斜容器。 输入[1,8,6,2,5,4,8,3,7] 输出49 解释图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下容器能够容纳水表示为蓝色部分的最大值为 49。 题目初步解析 这一道题就是我们小时候常常说的水桶效应 水桶效应 水桶效应是指一只水桶想盛满水必须每块木板都一样平齐且无破损如果这只桶的木板中有一块不齐或者某块木板下面有破洞这只桶就无法盛满水。是说一只水桶能盛多少水并不取决于最长的那块木板而是取决于最短的那块木板。也可称为短板效应。一个水桶无论有多高它盛水的高度取决于其中最低的那块木板。 这就是我们要利用的思想来解答题目 代码实现逻辑 这是一个运用到双指针思想的问题不一定用指针 第一步 可以在数组的两侧开头以及末尾标记两个指针或者记录下标 然后计算面积 第二步 此时当然不能说这是最大的面积 我们要进行遍历 那怎么遍历呢 还记得我们刚刚说的木头效应吗 你装下的水取决于的是你最小的那一块木板 那如果要遍历的话 只能是短的一边进行更新如果是左边的指针那就往右移动 如果是右边的就往左边进行移动 也就是都向“中间”更新 因为在横坐标两条垂线的距离降低的情况下如果变化的是长边盛水的长方形的高依旧不会变不需要比较那么面积必然会更小 第三步 那迭代出来的面积个数不止一个怎么办呢 分别比大小就可以了 第三步的步骤就是把每次迭代出来的值与之前的最大值比大小 如果更新的值更大那就更新最大值就行 代码具体实现 注意 这里是展示所有代码可直接运行但是力扣上的一个类所以要改一下才可以跑 添加容器元素的函数 void addCounts(vectorint sum_1) {int length;cout 输入数组的长度 endl;cin length;int i 1;while (i length){int sum_2;cout 输入第 i 个元素 endl;cin sum_2;sum_1.insert(sum_1.end(), sum_2);i;}; } 这里就是最基本的赋值就行 可以用链表的形式当然我图方便用了容器 不过如果用链表的话那下面的函数要进行修改 这些方法都可以 计算迭代并且判断面积是否是最大值 int maxArea(vectorint height) {int maxarea 0;int maxarea_1 0;int i 0;int j height.size() - 1;//最左节点int left_str height[i];//最右节点int right_str height[j];while (i ! j){if (height[i] height[j]){maxarea_1 height[i] * (j - i);if (maxarea maxarea_1)maxarea maxarea_1;i;}else{maxarea_1 height[j] * (j - i);if (maxarea maxarea_1)maxarea maxarea_1;j--;}}return maxarea; } 我这里是用下标进行定位的 计算面积同时判断大小 while语句中判断左边标记的下标等于右边的时候跳出循环 需要注意的是迭代的时候左边是右边是-- 总代码 总代码附上 #include iostream #include vector using namespace std; //添加数组元素 void addCounts(vectorint sum_1) {int length;cout 输入数组的长度 endl;cin length;int i 1;while (i length){int sum_2;cout 输入第 i 个元素 endl;cin sum_2;sum_1.insert(sum_1.end(), sum_2);i;}; } int maxArea(vectorint height) {int maxarea 0;int maxarea_1 0;int i 0;int j height.size() - 1;//最左节点int left_str height[i];//最右节点int right_str height[j];while (i ! j){if (height[i] height[j]){maxarea_1 height[i] * (j - i);if (maxarea maxarea_1)maxarea maxarea_1;i;}else{maxarea_1 height[j] * (j - i);if (maxarea maxarea_1)maxarea maxarea_1;j--;}}return maxarea; } int main() {vectorint sum_1;addCounts(sum_1);int maxarea maxArea(sum_1);cout ************************************************************************* endl;cout 面积为 maxarea endl;return 0; } 运行结果 和题目得到示例得到的结果一样 总结 本次博客学习了一种新的思想并且巧妙的运用了学到的木桶效应来进行解题
http://www.dnsts.com.cn/news/9115.html

相关文章:

  • 网站建设需要用到iis吗网站前端切图做多个页面
  • 烟台做网站多钱网站开发 asp.net 还要学什么
  • 常州西站建设规划小学网站建设情况
  • 外贸网站宗旨长链接怎么弄成短链接
  • 环保设备在那个网站做有限责任公司法人承担什么责任
  • jsp网站缓存在哪无锡网站建设工作
  • ui最好的网站上海风险等级最新
  • 上海最专业的网站设计制wordpress 504 gateway time-out
  • 网站做菠菜阿里云做网站可以吗
  • 北京营销型网站建设培训生物网站建设
  • 做商城网站怎么做cms网站建设
  • 网站开发工程师项目经验怎么写花都营销型网站
  • wordpress上线apache嘉兴优化公司
  • 东莞网站设计师简述seo的优化流程
  • 那个网站做二手买卖的黄龙云 加强网站建设
  • 网站架构制作wordpress主题mx
  • 淘宝联盟怎么新建网站比wordpress好的工具
  • 电子科技企业网站建设东莞建筑公司招聘信息
  • 做网站推广都有哪些行业扬中简介
  • 知乎网站建设入门书蚌埠做网站的公司
  • 网站建设自查自评做快消品看那些网站好
  • 杭州网站建设科技有限公司国内定机票网站建设
  • 广州网站建设 骏域网页小游戏的网站
  • 个人做网站怎样才能建一个网站
  • 免费ppt模板下载哪个网站好东莞互联网推广
  • 网站线下推广怎么做自己做网站卖货多少钱
  • dw如何在网站做弹窗整站seo怎么做
  • 淘宝放单网站开发网站后台管理教程
  • 做网站前期ps 图多大安徽公路建设行业协会网站是哪个
  • 最全网站源码分享网站备案 怎么建站