首页 > 其他分享 >11、盛水最多的容器

11、盛水最多的容器

时间:2024-01-05 15:57:53浏览次数:31  
标签:11 容器 capacity 盛水 int minHeight height index2 index1


法一:暴力解法(超时)

int maxArea(vector<int>& height) {
    int max = 0;

    for(int i = 0; i<height.size(); i++){
        for(int j = i+1; j<height.size(); j++){
           int minHeight = min(height[i], height[j]);
           int capacity = (j-i) * minHeight;
           if (capacity > max)
           {
            max = capacity;
           }
        }
    }

    return max;
}

法二:双指针

  1. 设置双指针index1和index2分别指向数组开始和结尾
  2. minHeight为双指针所指元素的较小值
  3. 容积capacity=(index2-index1)*minHeight
  4. 若index1所指元素较短,则index1++后,即移动短板,容积可能增大,可能减小或不变。
  5. 若index2所指元素较长,则index2--后,即移动长板,容积可能不变,可能减小。
  6. 因此只需移动短板,就可能获得较大容积。
int maxArea(vector<int> &height)
{
    int index1 = 0, index2 = height.size() - 1;
    int minHeight = 0;
    int capacity = 0;

    while (index1 != index2)
    {
        if (height[index1] > height[index2])
        {
            minHeight = height[index2];
            if ((index2 - index1) * minHeight > capacity)
            {
                capacity = (index2 - index1) * minHeight;
            }
            index2--;
        }
        else
        {
            minHeight = height[index1];
            if ((index2 - index1) * minHeight > capacity)
            {
                capacity = (index2 - index1) * minHeight;
            }
            index1++;
        }
    }

    return capacity;
}

标签:11,容器,capacity,盛水,int,minHeight,height,index2,index1
From: https://www.cnblogs.com/morehair/p/17947417

相关文章

  • Win10、Win11电脑之间无法ping通
    Win10、Win11电脑之间无法ping通要达到的效果简单解决方法1点击“防火墙和网络保护”2点击“允许应用通过防火墙”3点击“更改设置”按钮4向下拉动右侧滚动条,找到“文件和打印机共享”,“专用”和“公用”的两个复选框都选中【实测:只选择“公用”即可】......
  • Win11打开IIS Web服务器
    Win11打开IISWeb服务器1CMD+R运行'control'2在控制面板打开程序和功能3启用或关闭功能4勾选IIS中的FTP、Web、万维网服务5重启即可6若自己有网站,直接将文件放此即可......
  • 痞子衡嵌入式:在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤(MIPI DSI接口)
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是在i.MXRT1170上快速点亮一款全新LCD屏的方法与步骤。我们知道LCD屏的接口有很多:DPI-RGB、MIPIDSI、DBI/MCU(I8080)、LVDS、SPI等等,接口不同,对应的软件驱动也不同。RT1170片内外设对以上接口都能很好地......
  • 大二打卡(11.30)
    今天做了什么:平平无奇的周四,上着令人痛苦的满课,uml今天是第二个实验,体育课,哎,练了跟没练似的,接也接不住,传也传不过去,发球好像发过去了吧,也不知道,因为是网下练习的,没有网子标着,感觉很费劲,下午数据结构,今天的提问环节还行,都能自己回答上来,毕竟老师每节课开头前三四十分钟,都带着我们......
  • 大二打卡(11.28)
    今天做了什么:上午的数据结构课程如往常一样,老师认真地讲解着各种数据结构的原理和应用。我认真地记着笔记,试图将每一个知识点都牢牢地印在脑海中。这样的课程虽然有些枯燥,但却是我专业基础的重要组成部分,不容忽视。马原课是我们这一学期的最后一次给领导看监控的课。这意味着我......
  • 大二打卡(11.29)
    今天做了什么:清晨八点,我准时从睡梦中醒来。拉开窗帘,阳光透过窗户洒在我的床上,温暖而明亮。我迅速洗漱完毕,坐在书桌前,开始了今天的第一个任务——背诵英语听写的单词和短语。这已经是我连续第三天早起背单词了。每次大约半个小时,虽然时间不长,但效果还不错。今天的单词和短语不算......
  • 大二打卡(11.27)
    今天做了什么事儿:上午,工程实训开始了。原本以为这次会让我们造一个小型机器人,但现实却有些出乎意料。我们被分配到了一个小车项目,任务是组装并编写代码使其能够按照指定的路径行驶。虽然与预期有些差距,但至少也算与机器人有些关联。在组装小车的过程中,我们负责拧螺丝、安装轮子......
  • Kubernetes容器运维与编排技术的精髓
    Kubernetes容器运维与编排技术的精髓在当今云原生技术的浪潮中,Kubernetes(简称K8s)无疑是最为引人注目的容器编排工具之一。作为一个强大而灵活的平台,Kubernetes在容器化应用的自动部署、扩展、管理方面展现了其卓越的能力。本篇博文将深度剖析Kubernetes容器运维与编排技术,重点关注......
  • CentOS 8.5 (2111) 发布 -- 最后一代 CentOS
    作者主页:sysin.org没想到Redhat还继续发布了CentOS8.5,并提醒您不应该在生产中使用CentOSLinux8。生命周期仍然是年底结束(End-of-life31December2021)。对于CentOS8.5看看就好,请速迁移到AlmaLinux或者RockyLinux。我们很高兴地宣布最新的CentOSLinux8版本。立即......
  • Windows Subsystem for Android (WSA) 下载:在 Windows 11 上运行 Android 应用
    作者主页:www.sysin.org在Beta频道中为Windows预览体验成员宣布Windows11Preview上的Android™应用程序今天我们宣布的Android™应用程序适用于Windows11的第一个预览版现已在Beta频道在美国的WindowsInsiders可用,如果您还没有读过thisblogpostfromGiorgio......