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

盛最多水的容器(双指针)

在这里插入图片描述

解题思路:
1,暴力解法(超时)

我们可以使用两层for循环进行遍历。找到那个最大的面积即可,这里我就不写代码了,因为写了也是超时。

2,双指针法

先定义两个指针一个在最左端,一个在最右端:矩形的体积是 底*高 ,我们将两个指针之间的距离当做底,当两个指针移动时底一定会减小,所以如果此时高还在减小,那么他的面积肯定会减小,所以我们就找高增大的作为矩形的两边,因此就有了height[left] > height[right] 这个判断条件,每次移动后都要比较,并取最大的体积,然后重复循环即可。此算法的时间复杂度是O(n)。

代码实现
class Solution {public int maxArea(int[] height) {int left = 0,right = height.length - 1;int ret =0;while(left < right){int v = (right - left) * Math.min(height[left],height[right]);if(height[left] > height[right]){right--;}else {left++;}if( ret < v){ret = v;}}return ret;}
}
http://www.lryc.cn/news/348103.html

相关文章:

  • 【深度学习】实验3 特征处理
  • MoneyPrinter国内版改造
  • C++ 派生类的引入与特性
  • Poe是什么?怎样订阅Poe?
  • 基于FPGA的视频矩阵切换方案
  • .NET周刊【5月第1期 2024-05-05】
  • springcloud -nacos实战
  • 第十五章 数据管理成熟度评估练习
  • tcpdump速查表
  • 单元测试与集成测试:软件质量的双重保障
  • 孙宇晨对话大公网:香港Web3政策友好环境示范意义重大
  • Python运维之多线程!!
  • milvus插入数据时,明明不超长,但总是报长度错误?
  • 怎么把图片大小缩小到1M?教你几招图片你压缩
  • python数据分析常见命令
  • 等保测评技术方案(五)
  • Redis缓存的基本概念和使用
  • MATLAB模拟退火算法、遗传算法、蚁群算法、粒子群算法
  • git自用随笔
  • CorelDRAW2024设计界的隐藏宝藏
  • 【JAVA】递归
  • MacOS java多版本安装与管理
  • NSSCTF | [LitCTF 2023]我Flag呢?
  • PostgreSQL-常用函数和操作符
  • 河南大学大礼堂火灾事故引发安防监控对智能分析技术应用的思考
  • 自动化中遇到的问题归纳总结
  • UE4_照亮环境_不同雾效的动态切换
  • 【解决】Android APK文件安装时 已包含数字签名相同APP问题
  • layui的treeTable组件,多层级上传按钮失效的问题解决
  • HashMap在JDK1.8的优化