news 2026/5/1 8:06:52

hot100 3.无重复字符的最长子串

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hot100 3.无重复字符的最长子串

思路:滑动窗口。

复杂度分析:

1.时间复杂度:O(n)。

2.空间复杂度:O(1)。

(一)方法一:整型数组

class Solution { public int lengthOfLongestSubstring(String s) { char[] chars = s.toCharArray(); int n = chars.length; int res = 0; int left = 0; int[] cnt = new int[128]; //ASCII码的字符集有128个字符 for(int right = 0;right < n;right++){ char c = chars[right]; cnt[c]++; while(cnt[c] > 1){ //窗口内有重复元素 cnt[chars[left]]--; //移除窗口左端点字母 left++; //缩小窗口 } res = Math.max(res,right - left + 1); //更新窗口长度的最大值 } return res; } }

(二)方法二:布尔数组

class Solution { public int lengthOfLongestSubstring(String s) { char[] chars = s.toCharArray(); int n = chars.length; int res = 0; int left = 0; boolean[] has = new boolean[128]; //ASCII码的字符集有128个字符 for(int right = 0;right < n;right++){ char c = chars[right]; // 如果窗口已经包含c,那么再加入一个c会导致窗口内有重复元素 // 所以要在加入c之前,先移出窗口内的c while(has[c]){ //窗口内有c has[chars[left]] = false; left++; //缩小窗口 } has[c] = true; //加入c res = Math.max(res,right - left + 1); //更新窗口长度的最大值 } return res; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 16:46:11

COMSOL PEMFC仿真模型研究:多相流非等温模型与物理变量耦合分析

COMSOL PEMFC多相流非等温模型仿真 低温质子交换膜燃料电池仿真、燃料电池仿真 考虑电流-传热-传质-液态水-膜中水等多个物理变量之间的耦合。 可指导相关方面仿真建模1.传统单流道多相流仿真模型2.金属泡沫流场多相流仿真模型 我潮湿的质子交换膜燃料电池内部&#xff0c;像是…

作者头像 李华
网站建设 2026/4/26 19:04:09

教育资源匹配困局破解,AI Agent智能推荐系统全面解析

第一章&#xff1a;教育AI Agent学习推荐的背景与意义随着人工智能技术的迅猛发展&#xff0c;教育领域正经历一场深刻的智能化变革。AI Agent作为具备自主感知、决策与执行能力的智能体&#xff0c;正在逐步融入个性化学习系统&#xff0c;成为推动教育公平与效率提升的关键力…

作者头像 李华
网站建设 2026/4/22 11:59:25

自古英雄多寂寥

“自古英雄多寂寥”是一句流传甚广的感慨&#xff0c;它道出了英雄人物在精神世界和人生境遇中的一种深刻孤独感。这句话可以从多个层面来理解&#xff1a;1. 境界的孤独见识超前&#xff0c;曲高和寡&#xff1a;英雄往往能看到常人看不到的危机&#xff0c;想到常人想不到的方…

作者头像 李华