lc hot 100之:双指针题目对比

article/2025/8/2 23:51:41

写到两个给我感觉很类似的双指针题目,但是代码不同,我想把两个题放在一起,对比着看看。

第一题:

首先,提到“重复”,比较好想到哈希表。访问过就在哈希表里记录,然后只要找哈希表中有没有这个数就知道他有没有出现过了。但我一开始只是想记录“是否存在”,其实答案是记录“这个数存在的最大位置”,也就是利用他来求最大距离。

我们可以想象,有一个指针一定会从头往后遍历字符串,那么怎么判断他之前有多少个最大无重复字符呢?我们可能会想还要一个指针,这就是本题的一个思维难点:什么时候移动指针?移动到哪个位置?

如果s[j]这个数已经有过,那么修改i指针,使i后移到数字中s[j]的前一个位置,防止重复。(这里很难想到......我也不知道怎么解释比较好qvq)

哦,这一题还能用动态规划+哈希表,但我还不会。留个凳子在这之后写(哈哈哈哈给自己留尾巴)

代码:

class Solution {
public:int lengthOfLongestSubstring(string s) {unordered_map<char,int>m;int res=0;int i=-1;for(int j=0;j<s.size();j++){if(m.find(s[j])!=m.end()){i=max(i,m.find(s[j])->second);//就是<char,int>对应的int,数s[j]的位置}m[s[j]]=j;//哈希表记录的是数s[j]的位置res=max(res,j-i);}return res;}
};

第二题:

我想应该找两个距离最远,他们中高度小的height值最大的两个位置

那么为了距离最远,我们直接让两个指针指向0, n-1,一头一尾。只要遍历是让area最大就可以。难点同样在于:什么时候移动指针?移动哪一个指针?

题解给出的是移动两个height值最小的那一个位置,如果是左边的指针右移,如果是右边的指针左移。可以证明如果要使area>原值,那么一定是移动height值最小的那个位置,不然怎么移都只会变小或不变。

代码:

class Solution {
public:int maxArea(vector<int>& height) {int l=0,r=height.size()-1;int n=height.size();int ans=0;while(l<r){ans=max(ans,min(height[l],height[r])*(r-l));if(height[l]<height[r])l++;elser--;}return ans;}
};

OK写到这里自己有一些感觉了,双指针题目一般的难点就是怎么移动指针。希望在做题的时候能想明白这个,代码应该不难写。

加油!


http://www.hkcw.cn/article/jyxAwbKRio.shtml

相关文章

6.01打卡

浙大疏锦行 DAY 40 训练和测试的规范写法 知识点回顾&#xff1a; 1. 彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中 2. 展平操作&#xff1a;除第一个维度batchsize外全部展平 3. dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模…

SIM——引入双阶段搜索机制在用户行为序列的同时关注动态兴趣

文章目录 1. 背景2. 方法2.1 GSU2.1.1 Hard Search2.1.2 Soft Search 2.2 ESU 这里来回顾一篇经典的文章 SIM&#xff08;Search-based Interest Model&#xff09;&#xff0c;也是自己学习一下&#xff0c;虽然挺久了&#xff0c;但是业界都在使用这个&#xff0c;说明含金量…

LeRobot ACT——LeRobot对ALOHA ACT策略的封装:含源码解析与真机部署(效果比肩ACT原论文)

前言 本文一开始是此文的第一部分&#xff0c;后随着我司各大具身团队对各个动作策略的实践、深入&#xff0c;觉得可以挖掘且分享的细节越来越多&#xff0c;比如LeRobot ACT&#xff0c;其效果也不错 ALOHA ACT的复现与应用&#xff1a;双臂下的智能分拣场景 故把其中的「Le…

【Linux网络编程】网络层IP协议

目录 IP协议的协议头格式 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 IP协议的协议头格式 4位版本号 &#xff1a;指定IP协议的版本&#xff0c;对于IPv4&#xff0c;版本号就是4。 4位首部长度&#xff1a;表名IP协议报头的长度&#xff0c;单…

微调大模型:什么时候该做,什么时候不该做?

目录 一、什么是“微调”&#xff1f;你真的需要它吗&#xff1f; 二、什么时候不该微调&#xff1f; &#x1f6ab; 不该微调的 5 个典型场景&#xff1a; 1. 通用问答、闲聊、常识类内容 2. 企业内部问答 / 文档助手 3. 想要通过微调“学会格式” 4. 没有大量高质量标…

[AD] CrownJewel-1 Logon 4799+vss-ShadowCopy+NTDS.dit/SYSTEM+$MFT

QA QA攻擊者可以濫用 vssadmin 實用程式來建立卷影快照&#xff0c;然後提取 NTDS.dit 等敏感檔案來繞過安全機制。確定卷影複製服務進入運作狀態的時間。2024-05-14 03:42:16建立卷影快照時&#xff0c;磁碟區複製服務會使用機器帳戶驗證權限並列舉使用者群組。找到卷影複製過…

系统思考:整体观和心智模式

如果你是小区管委会的主委&#xff0c;面对住户抱怨“电梯太慢&#xff0c;每次都要花很久等电梯”&#xff0c;是不是第一反应就是——换马达、更新软件&#xff0c;甚至换整台电梯&#xff1f;这其实是典型的“线性思维”陷阱——把问题看成孤立的零件故障。 从系统思考的角…

常见相机的ISP算法

常见的ISP算法 3A算法 去雾算法 图像增强算法 图像宽动态算法 图像的电子缩放算法&#xff0c;无极电子缩放 图像降噪算法 相机常见问题 1.相机启动速度问题&#xff0c;启动速度较慢 2.相机扛不住高低温问题 3.相机散热问题问题 4.相机高低温芯片保护掉电 5.相机的成像效果或者…

黑马Java面试笔记之框架篇(Spring、SpringMvc、Springboot)

一. 单例bean Spring框架中的单例bean是线程安全的吗&#xff1f; Spring框架中的bean是单例的&#xff0c;可以在注解Scope()进行设置 singleton&#xff1a;bean在每一个Spring IOC容器中只有一个实例。prototype&#xff1a;一个bean的定义可以有多个实例 总结 二. AOP AOP称…

【Go】2、Go语言实战

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 前置知识 本篇将涉及到一些在命令行的输入输出操作&#xff0c;之前我们已经学习了fmt包用于输出内容&#xff0c;下面将介绍bufio包用于读入数据。 bufio包简介 bufio 是 Go 标准库…

基于Python与本地Ollama的智能语音唤醒助手实现

项目简介 本项目是一个基于 Python 的智能语音助手&#xff0c;集成了语音录制、语音识别、AI对话和语音合成功能。用户可以通过语音与本地部署的 Ollama 大模型进行自然对话。 技术架构 核心功能模块 语音录制 - 使用 sounddevice 录制用户语音语音识别 - 使用 faster-whi…

Vue框架2(vue搭建方式2:利用脚手架,ElementUI)

一.引入vue第二种搭建方式 在以前的前端项目中,一个项目需要多个html文件实现页面之前的切换,如果页面中需要依赖js或者css文件,那么我们就需要在多个html文件中都需要导入vue.js文件,太过繁琐. 现在前端开发都采用单页面结果,一个项目中只有一个html文件 其他不同的内容都写…

维斯塔潘谈和拉塞尔碰撞 意外相撞引发讨论

在F1西班牙大奖赛正赛中,维斯塔潘因与拉塞尔相撞被罚时10秒,最终排名第十。赛后采访中,记者问及那次碰撞。维斯塔潘表示两人开车时确实撞到了一起。当记者指出他本可以避免这种情况时,维斯塔潘承认了这一点。至于为什么会发生这样的情况,他表示自己也不清楚。责任编辑:zx…

乌称摧毁俄大量轰炸机 俄媒称系谣言 谎言蛛网

俄罗斯“与假新闻作战”网站发布文章称,通过分析乌克兰方面发布的视频可以确认,乌总统泽连斯基所谓“已摧毁34%俄罗斯远程机队”的说法并不属实。俄方认为,乌方的行动更像是编织了一张“谎言蛛网”。俄方分析指出,乌克兰实际上可能仅摧毁了两架图-95战略轰炸机及一架安-12运…

IntelliJ IDEA 接入 Ollama 本地模型 Qwen-coder

一&#xff1a;下载ollama 官网下载https://ollama.com/ 二&#xff1a;安装 一键自动安装&#xff0c;且安装的是C盘 如果C盘紧张&#xff0c;想装在其他盘符&#xff0c;在安装包目录下打开cmd命令行&#xff0c; 在你想安装的盘下创建一个文件夹&#xff0c;例如在D盘创建…

C++学习-入门到精通【12】文件处理

C学习-入门到精通【12】文件处理 目录 C学习-入门到精通【12】文件处理一、文件和流二、创建顺序文件三、从顺序文件读取数据文件定位指针对之前的程序进行修改&#xff1a;贷款查询程序 四、更新顺序文件五、随机存取文件1.创建随机存取文件2.修改程序&#xff1a;贷款处理程序…

生成式AI模型的重要评估指标——FID

1、引言 随着深度学习的发展迅速&#xff0c;生成式模型如生成对抗网络&#xff08;GAN&#xff09;、变分自编码器&#xff08;VAE&#xff09;等取得了显著的进展。看似逼真的图像数据&#xff0c;仍旧会有结构缺陷等情况发生&#xff0c;那么如何客观、准确的评估这些生成式…

第十:如何在Pycharm中安装AI插件(Proxy AI)

一.安装插件 1.通过官网安装&#xff1a;https://plugins.jetbrains.com/plugin/21056-proxy-ai2.通过设置安装&#xff1a;设置->插件->搜索&#xff1a;Proxy AI->点击安装3.安装后重启二.配置插件 1.配置路径&#xff1a;设置 -> 工具 -> CodeGPT或者Proxy…

在Visual Studio开发平台使用通义灵码:AI代码助手的深度实践指南

引言&#xff1a;当经典IDE遇见AI代码革命 Visual Studio&#xff08;以下简称VS&#xff09;作为微软推出的旗舰级集成开发环境&#xff0c;长期占据企业级开发工具的核心地位。然而&#xff0c;在智能化浪潮下&#xff0c;传统IDE的代码编写效率瓶颈日益显现。阿里云推出的通…

为什么你必须降AI?——写给每一位学生与科研人

&#x1f4c9; 为什么要降 AI 检测率&#xff1f;一篇文章带你看清真相&#xff01; 随着AI大模型的发展&#xff0c;越来越多的人开始使用人工智能辅助写作&#xff0c;无论是撰写论文、文案&#xff0c;还是职称申请材料&#xff0c;都大大提升了效率。然而&#xff0c;随之…