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

【Java】【力扣】【字节高频】3.无重复字符的最长字串

思路

滑动窗口+map

代码

自己的

public static int lengthOfLongestSubstring(String s) {//定义变量int begin=0;int end=0;HashMap<Character,Integer> map=new HashMap<>();int max=0;//循环 ,结束条件:end到尾部for ( end = 0; end <s.length(); end++) {Character curChar=s.charAt(end);//判断是否包含// 1.不包含 扩张,更新mapif (!map.containsKey(s.charAt(end)) ) {map.put(s.charAt(end),end);}//2.包含// 左缩小:begin更新位置// 更新map//map.get(s.charAt(end))旧的索引else if (map.containsKey(curChar)) {begin=max(begin,map.get(curChar)+1);map.remove(curChar);map.put(curChar,end);}// 3.判断本次窗口的大小// >max,则更新int cur=end-begin+1;if (cur >max) {max=cur;}}return max;}

黑马老师的

总结

1.ifelse注意

2.变量初始值设置成什么 的问题==为什么 end从0开始

核心思路:

判断 end 每轮都在做什么

从 谁开始就要这么做

3.为什么begin要max() 二选一

map可能带来什么问题

begin=max(begin,map.get(s.charAt(end))+1);

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

相关文章:

  • 便捷的电脑自动关机辅助工具
  • Deepseek搭建智能体个人知识库
  • yolo8实现目标检测
  • 操作系统核心技术剖析:从Android驱动模型到鸿蒙微内核的国产化实践
  • Day 56
  • EPLAN 电气制图(六):结构盒与设备管理器核心概念(基础知识选看)
  • Linux操作系统之进程间通信:管道概念
  • EF提高性能(查询禁用追踪)(关闭延迟加载)
  • 神经网络初步学习3——数据与损失
  • 如何选择时序数据库:关键因素与实用指南
  • HCIP(综合实验)
  • 备受期待的 MMORPG 游戏《侍魂R》移动端现已上线 Sui
  • 【教程】基于GNN的药物相互作用网络中的链接预测
  • 200nl2sql
  • 安全管理协议(SMP):配对流程、密钥生成与防中间人攻击——蓝牙面试核心考点精解
  • python 在运行时没有加载修改后的版本
  • 自动驾驶决策与规划
  • 华为动态路由配置
  • 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
  • 分库分表之实战-sharding-JDBC水平分库+分表后:查询与删除操作实战
  • Android Notification 通过增加addAction 跳转回Service重新执行逻辑
  • 海信IP501H_GK6323处理器免拆卡刷包和线刷救砖包_当贝纯净版
  • LLM 在预测下一个词的时候是怎么计算向量的,说明详细过程
  • 数据库技术体系及场景选型方案
  • RNN及其变体的概念和案例
  • 数据一致性解决方案总结
  • 软件发布的完整流程梳理
  • brainstorm MEG处理流程
  • 【科研绘图系列】R语言绘制解剖图
  • 【leetcode】2235. 两整数相加