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

LeetCode 11.盛最多水的容器

目录

题目:

题目描述:

题目链接:

思路:

核心思路:

思路详解:

代码:

Java代码:

C++代码:


题目:

题目描述:

题目链接:

11. 盛最多水的容器 - 力扣(LeetCode)

思路:

核心思路:

双指针

思路详解:

这题主要是用双指针的思想来解决,首先定义area用于记录所有情况中的最大容量,i指针指向数组第一个元素,j指针指向数组最后一个元素。由题及常识不难理解容器的最大容量取决于短板,如果当前情况是i指向的是短板,那我们就需要尝试去寻找更长的板,所以j指向的长板不用动将i指针后移。如果当前情况是j指向的是长板,那我们也同样需要尝试去寻找更长的板,所以i指向的长板不用动将j指针前移。双指针合法的条件就是i<j,因为i==j的时候底就为0了,i>j实际上就和i<j的情况重复了

代码:

Java代码:

class Solution {  //双指针public int maxArea(int[] height) {int area = 0;  //area用于记录所有情况中的最大容量int i = 0;                  //i指针指向数组第一个元素int j = height.length - 1;  //j指针指向数组最后一个元素int s,h;while(i < j){h = Math.min(height[i],height[j]);  //此时容器的最大容量取决于短板s = h * (j - i);  //计算此时容器的最大容量if(s > area)  //如果出现更大的容量就修改area记录的数值{area = s;}if(height[i] < height[j])  //如果i指向的是短板就i指针后移去寻找更长板{i++;}else  //如果j指向的是短板就j指针前移去寻找更长板{j--;}}return area;}
}

C++代码:

class Solution {  //注释同理Java代码
public:int maxArea(vector<int>& height) {int area = 0;int i = 0;int j = height.size() - 1;int s,h;while(i < j){h = min(height[i],height[j]);s = h * (j - i);if(s > area){area = s;}if(height[i] < height[j]){i++;}else{j--;}}return area;}
};

http://www.lqws.cn/news/606979.html

相关文章:

  • 基于centOS9(redhat9)使用NGINX搭建discuz论坛
  • 深度解析Linux内核IPv4设备管理:net/ipv4/devinet.c
  • 创客匠人深度解构 IP 定位:从使命驱动到差异化落地的实践路径
  • 【RHCSA-Linux考试题目笔记(自用)】servera的题目
  • 云上配送革命:亚矩云手机如何重塑Uber Eats的全球外卖生态
  • vue中ref()和reactive()区别
  • 新手向:MySQL完全指南,从零开始掌握数据库操作
  • 洪水填充算法详解
  • 智能学号抽取系统 V3.7.5 —— 一个基于 Vue.js 的交互式网页应用
  • SpringCloud系列(46)--SpringCloud Bus实现动态刷新全局广播
  • Prompt Engineering Guide — 提示工程全方位指南
  • 博图SCL编程:数据隐式转换使用详解与实战案例
  • ABAP+记录一个BDC的BUG修改过程
  • moodle升级(4.5到5.0)
  • 数据结构学习之栈
  • 计算机视觉---视觉伺服控制
  • mac mini m4安装node.js@16以下版本方法
  • nignx+Tomcat+NFS负载均衡加共享储存服务脚本
  • 重塑智能体决策路径:深入理解 ReAct 框架
  • 使用OpenCV训练自有模型的实践
  • 金融安全生命线:用AWS EventBridge和CloudTrail构建主动式入侵检测系统
  • Chrome 下载文件时总是提示“已阻止不安全的下载”的解决方案
  • VR制作公司业务范围
  • 【NumPy第二期:深入学习NumPy:切片、索引与数组操作进阶】
  • Java类加载机制及关于时序数据库IoTDB排查
  • 阿里云AppFlow AI助手打造智能搜索摘要新体验
  • 01背包问题[经典][动态规划]
  • RT Thread Studio修改堆区大小的方法
  • pytorch学习-9.多分类问题
  • 第8章网络协议-NAT