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

10.《滑动窗口篇》---②长度最小的子数组(中等)

有了上一篇的基础。这道题我们就可以轻易分析可以使用滑动窗口来解决了

方法一:滑动窗口

这里注意 ret 在while循环外部更新

while 外部更新 ret确保窗口在满足条件后再计算长度,避免错误计入正在调整中的窗口长度。

class Solution {public int lengthOfLongestSubstring(String s0) {int[] hash = new int[128]; //数组模拟哈希表int n = s0.length();char[] s = s0.toCharArray();int ret = 0;for(int left = 0,right = 0; right < n; right++){hash[s[right]]++; //进入窗口while(hash[s[right]] > 1){hash[s[left++]]--;}ret = Math.max(ret,right-left+1);}return ret;}
}

复杂度分析

时间复杂度:O(n),

空间复杂度:

  • 常见分析: 空间复杂度为 O(1),因为哈希表是固定大小,额外空间使用与输入大小无关。
  • 严格分析: 如果字符数组 chars 被视为额外空间,则空间复杂度为 O(n)
http://www.lryc.cn/news/487703.html

相关文章:

  • java的强,软,弱,虚引用介绍以及应用
  • STL-stack栈:P1981 [NOIP2013 普及组] 表达式求值
  • Java使用stream进行分组汇总失效问题
  • VMWare虚拟机安装华为欧拉系统
  • 阿里云轻量应用服务器可以用在哪些场景呢
  • OrangePi 5plus yolov5 部署全过程
  • Rust中::和.的区别
  • 集群聊天服务器(7)数据模块
  • VS Code 更改背景颜色
  • OpenAI 助力数据分析中的模式识别与趋势预测
  • IDM扩展添加到Edge浏览器
  • 【SpringBoot】26 实体映射工具(MapStruct)
  • 分层架构 IM 系统之架构演进
  • 基于YOLOv8深度学习的医学影像阿尔兹海默症检测诊断系统研究与实现(PyQt5界面+数据集+训练代码)
  • 【支持向量机(SVM)】:相关概念及API使用
  • Android kotlin之配置kapt编译器插件
  • 时序数据库TDEngine
  • jd-easyflow中inclusive的用法
  • sqlmap图形化安装使用(附文件)
  • 从二维到一维:动态规划矩阵问题的优化之道
  • 计算机视觉(CV):让机器看懂世界
  • 记录下,用油猴Tampermonkey监听所有请求,绕过seesion
  • 服务器产品
  • pyhton django web集群基于linux定时任务
  • 探索 Python 字典的奥秘:Future 对象为何能成为字典的键?
  • 多品牌摄像机视频平台EasyCVR视频融合平台+应急布控球:打造城市安全监控新体系
  • Spark 中 RDD checkpoint 是通过启动两个独立的 Job 完成的。
  • 如何下载TikTok视频没有水印
  • 天童美语:提升孩子的自信心的方法
  • 【网络编程】字节序:大端序和小端序