欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

无重复字符的最长子串——滑动窗口(每日一题)

时间:2023-06-09

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

解法一:

逐个遍历,确定第一个字母后,从这个字母的第二开始添加进字串,添加的时候判断添加进去的字母是否出现过。如果没有出现过,就将记录长度的变量加1;如果出现过,就结束这次循环。

public int lengthOfLongestSubstring(String s) { char[] ch = s.toCharArray(); int n = ch.length,u=0,max=0; for(int i=0;i=i;t--) { if(ch[t]==ch[j]) bj=1;//标记代表找到相同的 } if(bj==1) break; else u++; } } //判断是否更换max if(max

解法二:用Java 中的 HashSet来实现

(21条消息) java中的Set集合_mashaokang1314的博客-CSDN博客_java sethttps://blog.csdn.net/mashaokang1314/article/details/83721792?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164474072416780271973534%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164474072416780271973534&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-2-83721792.pc_search_result_positive&utm_term=Java+%E4%B8%AD%E7%9A%84+HashSet&spm=1018.2226.3001.4187

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。