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

【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.xdnf.cn/news/15154.html

相关文章:

  • 一条Redis命令是如何执行的?
  • Selenium+Pytest自动化测试框架实战前言#
  • Rust #[] 语法
  • SQL注入与防御-第六章-3:利用操作系统--巩固访问
  • CentOS/RHEL LVM 磁盘扩展完整教程
  • 虚拟化技术,容器技术和Docker
  • SQL Server 2008R2 到 2012 数据库迁移完整指南
  • 什么是幂等
  • ARM单片机滴答定时器理解与应用(一)(详细解析)
  • 专题一_双指针_查找总价格为目标值的两个商品
  • 飞算 JavaAI 智能编程助手 - 重塑编程新模态
  • 阿里开源WebSailor:超越闭源模型的网络智能体新星
  • NFS文件存储
  • 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
  • Vue响应式原理一:认识响应式逻辑
  • 【51单片机累计的时间为1分30秒时蜂鸣器叫】2022-7-29
  • VR重现红军过雪山:一场穿越时空的精神洗礼​
  • uniapp AndroidiOS 定位权限检查
  • 图像处理中的凸包检测:原理与实现
  • Protable 问题记录
  • 神经网络简介
  • [IMX][UBoot] 13.Linux 内核源码目录分析
  • 【Linux】权限的概念及理解
  • 【RK3568+PG2L50H开发板实验例程】FPGA部分 | 以太网传输实验例程
  • RabbitMQ 4.1.1-Local random exchange体验
  • 【linux】ssh使用-X参数后报错:X11 forwarding request failed on channel 0
  • 深度学习 最简单的神经网络 线性回归网络
  • Python-文件操作-StringIO和BytesIO-路径操作-shutil模块-csv,ini序列化和反序列化-argparse使用-学习笔记
  • 蛋白质序列-kappa参数计算算法解读
  • 苍穹外卖项目日记(day04)