首页 > 其他分享 >力扣11. 盛最多水的容器

力扣11. 盛最多水的容器

时间:2023-07-07 16:34:19浏览次数:33  
标签:11 容器 示例 int height 力扣 ans 最多水

题目:

给定一个长度为 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 <= n <= 105
0 <= height[i] <= 104

 

思路:

双指针

感觉这个移动有点博弈论的味了,每次都移动自己最差的一边,虽然可能变得更差,但是总比不动(或者减小)强,动最差的部分可能找到更好的结果,但是动另一边总会更差或者不变

这不是题,这是人生,逃离舒适圈!!

 

代码:

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

 

标签:11,容器,示例,int,height,力扣,ans,最多水
From: https://www.cnblogs.com/yccy/p/17535349.html

相关文章

  • 力扣605. 种花问题
    题目:假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed表示花坛,由若干0和1组成,其中0表示没种植花,1表示种植了花。另有一个数 n,能否在不打破种植规则的情况下种入 n 朵......
  • 力扣 334. 递增的三元子序列
    题目:给你一个整数数组 nums,判断这个数组中是否存在长度为3的递增子序列。如果存在这样的三元组下标(i,j,k) 且满足i<j<k,使得 nums[i]<nums[j]<nums[k],返回true;否则,返回false。 示例1:输入:nums=[1,2,3,4,5]输出:true解释:任何i<j<k的三元组都......
  • BZOJ 3073: [Pa2011]Journeys 线段树优化最短路
    3073:[Pa2011]JourneysTimeLimit: 20Sec  MemoryLimit: 512MBSubmit: 243  Solved: 80[Submit][Status][Discuss]DescriptionSeter建造了一个很大的星球,他准备建造N个国家和无数双向道路。N个国家很快建造好了,用1..N编号,但是他发现道路实在太多了,他要一条条......
  • BOZJ 1123: [POI2008]BLO tarjan求割点
    1123:[POI2008]BLOTimeLimit: 10Sec  MemoryLimit: 162MBSubmit: 1140  Solved: 505[Submit][Status][Discuss]DescriptionByteotia城市有n个townsm条双向roads.每条road连接两个不同的towns,没有重复的road.所有towns连通。Input输入n<=100000m<=5......
  • BZOJ 2243: [SDOI2011]染色 树链剖分+线段树
    2243:[SDOI2011]染色TimeLimit: 20Sec  MemoryLimit: 512MBSubmit: 7623  Solved: 2855[Submit][Status][Discuss]Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续......
  • BZOJ 2435: [Noi2011]道路修建 树的遍历-_-
    2435:[Noi2011]道路修建TimeLimit: 10Sec  MemoryLimit: 128MBSubmit: 3810  Solved: 1300[Submit][Status][Discuss]Description在W星球上有n个国家。为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通。但是每个国家的国王都很......
  • win11无法删除某些文件,需要管理员身份才能继续进行删除操作
    对于需要删除的文件夹,可以带点进去,全选文件进行删除操作我这里以百度网盘为例:如果想要删除是无法全部删除的,但是可以先删除那些可以删除的,然后在剩下的无法删除的文件中:右键--属性--安全--高级,你会发现需要修改权限,双击进入user--把user用户的权限设置成允许、完全控制我这......
  • P8182 「EZEC-11」雪的魔法 / NOIP 模拟赛 20230706 D 思考--zhengjun
    引用:这是一道非常棒的思维题,可以说没有用到任何高深的知识点,却极大地考验了做题人的思维能力和创造性。本题分为两步。根据线性规划对偶或贪心,转化题意。对\(m\)根号分治,然后分别进行分治。\(m\le\sqrt{n}\)分治比较好想,\(m>\sqrt{n}\)的根号分治比较难想。这......
  • 119子类依旧使用父类的属性和方法
    classPhone:IMEI=2020001producer="apple"defcall_by_4g(self):print("4g通话")classMyPhone2(Phone):IMEI=2023001producer="banana"defcall_by_4g(self):old_return_value=super......
  • 复习ES(6-11)语法之ES6下篇
    目录异步操作前置知识PromiseGenerator原理用法异步状态管理Iterator原生具备Iterator接口的数据结构Generator遍历不可迭代对象模块化规范异步操作前置知识JS是单线程的单线程即一个时间只能处理一个任务。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM......