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

【LeetCode100】--- 5.盛水最多的容器【复习回顾】

题目传送门

方法一:使用双指针

算法思想:
1.双指针算法,从两边依次向中间靠拢
2.计算较小的数(高度)与宽度(两指针作差)的乘积(面积)
3.使用临时变量将当前面积存储 依次遍历更新,直到找到最大的面积

class Solution {public int maxArea(int[] height) {int n = height.length;int left = 0,right = n-1;int max = 0,curMax = 0;while(left < right){if(height[left] < height[right]){curMax = height[left] * (right - left);left++;}else{curMax = height[right] * (right - left);right--;}max = Math.max(max,curMax);}return max;}
}

算法思维导图 

复杂度分析:

时间复杂度:O(n),算法使用双指针从数组两端向中间遍历,每次移动一个指针,直到两指针相遇。整个过程中,每个元素仅被访问一次,因此时间复杂度为线性时间。

空间复杂度:O(1),只用到了常数个临时变量。

http://www.lryc.cn/news/586971.html

相关文章:

  • 1.1.5 模块与包——AI教你学Django
  • 【SCI 4区推荐】《Journal of Visual Communication and Image Representation》
  • 反激变换器设计全流程(一)——电路拓扑及工作流程
  • fatal: active `post-checkout` hook found during `git clone`
  • 小车避障功能的实现(第七天)
  • 零基础入门物联网-远程门禁开关:软件安装
  • RabbitMQ 之仲裁队列
  • C++进阶-多态2
  • 全星质量管理QMS软件系统——汽车零部件制造业数字化转型的质量管理中枢
  • Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)
  • axios拦截器
  • 牛客周赛 Round 100
  • duckdb和pyarrow读写arrow格式的方法
  • 1.1.1+1.1.3 操作系统的概念、功能
  • 新手向:使用Python构建高效的日志处理系统
  • 深入理解Java中的hashCode方法
  • 磁悬浮轴承控制全攻略:从原理到实战案例深度解析
  • Python自动化:每日销售数据可视化
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十二课——图像增强的FPGA实现
  • java+vue+SpringBoo中小型制造企业质量管理系统(程序+数据库+报告+部署教程+答辩指导)
  • Git Commit Message写错后如何修改?已Push的提交如何安全修复?
  • NoSQL 介绍
  • 前端-CSS-day3
  • 20250713-`Seaborn.pairplot` 的使用注意事项
  • Spring Boot 安全登录系统:前后端分离实现
  • [Subtitle Edit] 语言文件管理.xml | 测试框架(VSTest) | 构建流程(MSBuild) | AppVeyor(CI/CD)
  • Augment AI 0.502.0版本深度解析:Task、Guidelines、Memory三大核心功能实战指南
  • 海豚远程控制APP:随时随地,轻松掌控手机
  • iOS高级开发工程师面试——关于优化
  • DMDIS文件到数据库