当前位置: 首页 > 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

相关文章:

  • 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四大引用类型:从强引用到虚引用的内存管理艺术
  • 推动粒子治疗更加可及可享!龚正调研上海市质子重离子医院
  • 上海蝉联全国中小企业发展环境评估综合排名第一
  • 男子服用头孢后饮酒应酬致昏迷在家,救援人员破门施救后脱险
  • 巴基斯坦外长访华是否与印巴局势有关?外交部:此访体现巴方高度重视中巴关系
  • 河南通报部分未检疫生猪流入:立案查处,涉案猪肉被封存
  • 海南保亭警方通报“两飞车党紧追女童”:两名初中生认错道歉