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

算法004——盛最多水的容器

力扣——盛最多水的容器点击即可跳转
在这里插入图片描述

当我们选择1号线和8号线时,下标为 1 和 8 形成容器的容积的高度是由 较矮的决定的,即下标为 8 的位置;
而宽度则是 1到8 之间的距离,为 8-1=7,此时容器的容积为 7 * 7 = 49。
在这里插入图片描述
当我们选择1号线和6号线时,高度为 8,宽度为 5,此时容积为 40,这个情况没有示例一多,所以示例一就是容积最大的情况。

我们先不看那么多数,从简单的开始分析,例如,分析中间的 6到4,即数组为 [6,2,5,4].
我们先选择6和4来计算容积,再选择其中较小的数来进行枚举,即以 4 来进行枚举,无论4跟谁一起容积都变小,所以4就不需要考虑了。
在这里插入图片描述
我们将这个规律用到整个数组中,利用双指针,在它们两个相遇前,计算出 V1,V2,V3……,再求出最大值。
在这里插入图片描述

代码如下

class Solution {
    public int maxArea(int[] height) {
        int left = 0;
        int right = height.length - 1;
        int volume = 0;
        while(left < right){
            int v = Math.min(height[left],height[right]) * (right - left);//求的是V1,V2……
            volume = Math.max(v,volume);//将最大值放到里面
            if(height[left] < height[right]){//谁小谁换
                left++;
            }else{
                right--;
            }
        }
        return volume;
    }
}

点个赞吧,谢谢你
在这里插入图片描述

相关文章:

  • 【前端基础】Day 6 CSS定位
  • 数据库原理与使用全解析:从理论到实践
  • React低代码项目:问卷编辑器 I
  • 什么是Agentic AI?(Doubao-1.5-pro-32k 大模型开启联网回答)
  • Qt | 实战继承自QObject的IOThread子类实现TCP客户端(安全销毁)
  • 迅雷下载实现原理解析
  • LLaMA(Meta开源的AI模型)与Ollama(本地运行和管理大模型的工具)简介(注意这俩虽然名字相似但没有直接联系)
  • 现代未来派品牌海报设计液体装饰英文字体安装包 Booster – Liquid Font
  • 算法随笔_62: 买卖股票的最佳时机
  • 面试常问的压力测试问题
  • 【数据结构】堆与二叉树
  • python第十一课:并发编程 | 多任务交响乐团
  • 原型链与继承
  • bdf「md」2
  • 【心得】一文梳理高频面试题 HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别并附加记忆方法
  • Spring Cloud LoadBalancer详解
  • Raspberry Pi边缘计算网关设计与LoRa通信实现
  • 使用Python SciPy库来计算矩阵的RCS特征值并生成极坐标图
  • 【网络安全 | 扫描子域+发现真实IP】CloakQuest3r安装使用详细教程
  • Python 如何实现烟花效果的完整代码
  • 做品牌文化的网站/互联网销售平台
  • 建站重庆/bt蚂蚁磁力搜索天堂
  • wordpress后台切换中文/windows优化大师有必要安装吗
  • 哈尔滨网站建设信息/关键的近义词
  • 无锡网站建设企业排名/上海推广外包
  • 网站建设工作下步打算/在线的crm系统软件