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

青海省住房和建设厅网站首页石嘴山北京网站建设

青海省住房和建设厅网站首页,石嘴山北京网站建设,电子商务网站建设的论文,成都网站建设新闻🏠关于专栏:专栏用于记录LeetCode中Hot100专题的所有题目 🎯每日努力一点点,技术变化看得见 题目转载 题目描述 🔒link->题目跳转链接 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的…

在这里插入图片描述

🏠关于专栏:专栏用于记录LeetCode中Hot100专题的所有题目
🎯每日努力一点点,技术变化看得见

题目转载

题目描述

🔒link->题目跳转链接
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

⚡说明:你不能倾斜容器。

题目示例

示例 1:
在这里插入图片描述
输入:[1,8,6,2,5,4,8,3,7]
输出:49
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例 2:
输入:height = [1,1]
输出:1

题目提示

● n == height.length
2 2 2 <= n <= 1 0 5 10^5 105
0 0 0 <= height[i] <= 1 0 4 10^4 104

解题思路及代码

暴力枚举法

既然要求两条线构成的最大容积,那就计算这些线两两构成的容积大小,以得到最大的容积。这个方法只需要两层for循环即可,算法复杂度为 O ( N 2 ) O(N^2) O(N2)。但这个算法的时间复杂度过高,最终会导致超时。

💡tips:这里计算容积时,使用的是高度×底部宽度。容器的高度取决于所有高度中较小的那一个。

class Solution {
public:int maxArea(vector<int>& height) {int maxCap = 0;for(int i = 0; i < height.size(); i++){for(int j = i + 1; j < height.size(); j++){int capacity = min(height[i], height[j]) * (j - i);maxCap = max(maxCap, capacity);}}return maxCap;}
};

双指针法

若定义两个变量left=0,right=height.size()-1,则可以得到由最左和最右两条线所构成的容积,即min(height[left], height[right]) * (right - left)。不管是left或right向内移动一格,宽度均会变小,故此时应当让height[left]和height[right]中小的那一个向内移动,因为宽度减小需要高度增加来补充;而当前高度受限于height[left]和height[right]中小的那一个,若小的线不发生改变,而缩小宽度,则容积只会变小;故每次只要将小的那一边向内移动即可。

下面通过示例1:[1,8,6,2,5,4,8,3,7]执行过程图,演示上述算法描述:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

class Solution {
public:int maxArea(vector<int>& height) {int maxCap = 0;int left = 0, right = height.size() - 1;while(left < right){int capacity = min(height[left], height[right]) * (right - left);maxCap = max(maxCap, capacity);if(height[left] > height[right]) --right;else ++left;}return maxCap;}
};

刷题使我快乐😭
文章如有错误,请私信或在下方留言😀

http://www.yayakq.cn/news/709761/

相关文章:

  • 中山企业营销型网站制作网站正在建设中 模版
  • 科技公司的网站建设费入什么科目做网站需要材料
  • 越秀网站建设推广网站制作协议书
  • 网站建设 选猴王网络wordpress justnews下载
  • 网站怎么更新文章做百度推广网站找谁好
  • 网站开发 培训丽水市莲都建设分局网站
  • 厦门微网站开发什么是新媒体运营
  • 凯里网站建设go007久久建筑网账号
  • 起名网站开发大型网站开发的书
  • 做网站用不用云服务器wordpress 网站特效
  • c 网站开发 视频南昌高端模板建站
  • 网站如何免费推广产品设计公司招聘
  • 微信公众号个人可以做网站么电商运营培训机构哪家好
  • 如何用社交网站开发客户百姓网地址怎么创建
  • 淘宝上的网站建设企业邮箱怎么认证
  • 个人签名设计网站网站营销推广怎么做网络营销推广
  • 手机数码网站企业网站的内容营销
  • 网站建设的所有权怎么做会员卡管理系统
  • 哪家招聘网站的猎头做的比较好营口网站建设开发制作
  • 台州知名网站文章网站是怎么做的
  • 网站设计ps做效果图过程工装公司排名前十
  • 网站视图错位中宁网站建设
  • 微信做商城网站中国建行网站首页
  • 网站建设的思想网站搜索怎么做的
  • 有没有免费的网站软件营销服务公司
  • 汕头网站建设过程阿里云免备案服务器
  • 如何设计响应式布局网站濮阳市做网站公司
  • 网站后台网址忘记了 php线上ui设计培训哪个好
  • 可以做图片视频的网站e福州app官方网站
  • 有服务器域名源码怎么做网站平台网页设计与制作字体设置