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

leetcode hot100刷题日记——4.盛最多水的容器

在这里插入图片描述
在这里插入图片描述
解答:
我的思路:

class Solution{public:int maxArea(vector<int>& height){//遍历,我暴力找一下,时间超限// int vol=0;// for(int i=0;i<height.size()-1;i++){//     for(int j=i+1;j<height.size();j++){//         vol=max(vol,min(height[i],height[j])*(j-i));//     }// }// return vol;//思想:依旧是左右指针//我们先从min(height[i],height[j])*(j-i)这个式子来思考//我们想要的:宽度(j-i)尽可能宽,高度min(height[i],height[j])尽可能高,那么乘积就会尽可能最大//如果想简化两重循环,怎么做呢?//在宽度这件事上可以想一想。我们直接弄俩左右指针,一个最左,一个最右,保障宽度直接从最宽开始//左右指针慢慢朝中间走,要保障高度最高=>左右指针走动的条件:永远把较矮高度的指针往里走//这样,最宽有保障,最高也有保障了int left=0,right=height.size()-1;int val=0;while(left<right){val=max(val,min(height[left],height[right])*(right-left));if(height[left]<=height[right]){left++;}else{right--;}}return val;}
}; 

时间复杂度:O(N)
空间复杂度:O(1)

思考:建议大家去leetcode看看官方题解证明双指针的思路,证明过程很详细link

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

相关文章:

  • python重庆旅游系统-旅游攻略
  • DeepSeek 如何实现 128K 上下文窗口?
  • 物流项目第一期(登录业务)
  • 深入理解 Vue2 与 Vue3 响应式系统:丢失场景、原因及解决方案
  • 【成品设计】基于STM32和LoRa远程通信控制系列项目
  • [IMX] 04.定时器 - Timer
  • 三维云展展示效果升级​
  • day 30
  • 开发指南116-font-size: 0的使用
  • Linux-进程信号
  • 存储系统03——数据缓冲evBuffer
  • ebpf程序入门编写
  • frida 配置
  • OCframework编译Swift
  • 【C++]string模拟实现
  • C++编程this指针练习
  • 【科研项目】大三保研人科研经历提升
  • Python元组全面解析:从入门到精通
  • 【基础】Windows开发设置入门8:Windows 子系统 (WSL)操作入门
  • 深入解析Java四大引用类型:从强引用到虚引用的内存管理艺术
  • 软件设计师E-R模型考点分析——求三连
  • STM32实战指南:DHT11温湿度传感器驱动开发与避坑指南
  • 关于ECMAScript的相关知识点!
  • 认识常规贴片电阻
  • 数学实验(方程和微分方程求解)
  • 11.4/Q1,GBD数据库最新文章解读
  • 第二十一次博客打卡
  • Prompt、Agent、MCP关系
  • Mergekit——高频合并算法 TIES解析
  • 嵌入式(C语言篇)Day10