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

Leetcode——11. 盛最多水的容器

首先该题的暴力做法就是两侧for循环,枚举所有的可能。

我们在此基础上进行思考,能否减少枚举的数量。

要想容纳最多的水,与两边最低边和长度有关。

我们可以取两个变量一个在最左,一个在最右,这个时候长度是最长的。

只需要枚举向里收缩的量即可(其实也就是全部)。

但两个变量可以减少枚举量。

我们假设左变量小于右变量,这个时候,我们讨论右变量。

①右变量向左时变大,此时根据木桶效应,高度不变,长度变短,总容纳量会变低。

②右变量向左时变小,此时根据木桶效应,高度变小,长度变短,总容纳量依旧低。

此时发现,无论右变量如何变化,都不会使容纳量增多,此时也没有必要枚举右变量所占的所有情况。

根据这一结论,我们就可以得到双指针形式代码。

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

http://www.dtcms.com/a/302235.html

相关文章:

  • kubectl中的yaml配置详解
  • 前段面试题新版
  • 从fork到exit:剖析Linux进程的诞生、消亡机制
  • 零基础部署网站?使用天翼云服务搭建语音听写应用系统
  • C++ list 容器全解析:从构造到模拟实现的深度探索----《Hello C++ Wrold!》(16)--(C/C++)
  • [机缘参悟-237]:AI人工神经网络与人类的神经网络工作原理的相似性
  • 嵌入式学习(40)-基于STM32F407Hal库的串口DMA空闲中断接收+DMA发送
  • 前端实现银河粒子流动特效的技术原理与实践
  • 物联网与数字孪生:深度协同驱动智能未来 —— 专业规划分析
  • 解析分区、挂载与块设备:Linux 存储管理核心命令详解
  • 关于前端的性能优化
  • Vue 工程化
  • 初识 docker [下] 项目部署
  • 【案例总结】幽灵单据——消失的交货单号
  • 数据库简介
  • layui-vue 入驻 GitCode 平台:让前端开发更简单优雅
  • 【Oracle】ORACLE-ASM安装
  • vue-grid-layout元素交换位置及大小
  • Python Pandas.merge函数解析与实战教程
  • 【数学建模论文学习笔记】基于历史数据的蔬菜类商品定价与补货决策模型
  • Java从入门到精通!第十八天(JDK17安装以及网络编程) 完结篇!!!
  • 7.29 技巧|
  • 【数据库】使用Sql Server将分组后指定字段的行数据转为一个字段显示,并且以逗号隔开每个值,收藏不迷路
  • C# 接口(interface 定义接口的关键字)
  • JVM 垃圾回收机制全景解析:从对象回收到收集算法
  • Spring Boot日志开发实战手册:集成/输出/级别控制/持久化精要
  • MySQL 锁机制 15 连问 · 面试速答版
  • openeuler24.03部署k8s1.32.7集群(一主两从)
  • C primer plus (第六版)第九章 编程练习第6题
  • 基于YOLO11的电梯电瓶车检测系统:让电梯更安全