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

【LeetCode】【算法】11. 盛最多水的容器

LeetCode 11. 盛水最多的容器

题目描述

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。

思路

思路:佬的脑子真好用,能借我一天用来面试吗?双指针,两个指针从高度数组两侧不断向中间挪动。当前面积=(双指针的差)*双指针最矮的那块板子,只需要用Math.max求最值即可。接下来不断移动短板。

代码

class Solution {
    public int maxArea(int[] height) {
        int i = 0, j = height.length - 1, res = 0;
        while (i < j) {
            res = height[i] < height[j] ?
                    Math.max(res, (j - i) * height[i++]) : // i是短板
                    Math.max(res, (j - i) * height[j--]); // j是短板
            // 面积=(底部宽度)*短板高度
            // 求完面积移短板(蕴藏在i++和j--)里了
        }
        return res;
    }
}

http://www.kler.cn/a/390863.html

相关文章:

  • 什么是数字图像?
  • 去地面算法——depth_clustering算法调试(1)
  • 定时器(QTimer)与随机数生成器(QRandomGenerator)的应用实践——Qt(C++)
  • Prompt 工程
  • Java-Redisson分布式锁+自定义注解+AOP的方式来实现后台防止重复请求扩展
  • Labelme标注数据的一些操作
  • C 语言学习-03【输入与输出】
  • 使用 Umami 部署博客分析工具
  • 达梦数据库配置本地守护
  • Execution failed for task ‘:app:compileDebugKotlin‘. 问题解决。
  • java数据结构与算法:栈
  • Unity3D UI 双击和长按
  • uni-app上拉加载更多⑩
  • 掌握 Java 集合框架:从基础到高级的全面指南
  • 量化交易系统开发-实时行情自动化交易-3.4.2.Okex行情交易数据
  • MySQL 常见时间字段设置
  • class com.alibaba.fastjson2.JSONObject cannot be cast to class com.ruoyi.sys
  • Redhat8.6安装JDK1.8
  • Docker--Docker是什么和对Docker的了解
  • 【实验10】卷积神经网络(1)卷积算子
  • H5移动端预览PDF方法
  • leetcode61:旋转链表
  • DolphinDB 与南方科技大学联合授课啦!
  • LeetCode 457.环形数组是否存在循环
  • 学习python的第八天之数据类型——list列表
  • 《青牛科技GC6150:摇头机驱动芯片的卓越替代品,超越 TMI8150》