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

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

定义一个map数据结构存储(k,v),其中key值为字符,value值为字符位置+1,加1表示从字符位置后一个才开始不重复 我们定义不重复子串的开始位置为start,结束位置为end 随着end不断遍历向后,会遇到与【start,end】区间内字符相同的情况,此时将字符作为ke...
  • 定义一个map数据结构存储(k,v),其中key值为字符,value值为字符位置+1,加1表示从字符位置后一个才开始不重复
  • 我们定义不重复子串的开始位置为start,结束位置为end
  • 随着end不断遍历向后,会遇到与【start,end】区间内字符相同的情况,此时将字符作为key值,获取其value值,并更新start,此时【start,end】区间内不存在重复字符
  • 无论是否更新start,都会更新其map数据结构和结果ans。
  • 时间复杂度:O(n)

代码:

 public int lengthOfLongestSubstring(String s) {
        int length=s.length();
        int max=0;
        //存放字符以及
        Map map =new HashMap();
        for (int start = 0,end=0; end 

文章来源于互联网:3.无重复字符的最长子串

0

评论0

鱼翔浅底,鹰击长空,驼走大漠
没有账号? 注册  忘记密码?