LeetCode算法(3)_無重複字符的最長子串

LeetCode算法(3)_無重複字符的最長子串

import java.util.HashSet;

/*
 * @lc app=leetcode.cn id=3 lang=java
 *
 * [3] 無重複字符的最長子串
 */

// @lc code=start
class Solution {
    public int lengthOfLongestSubstring(String s) {
        int n = s.length();
        int maxlen = 0;
        HashSet<Character> set = new HashSet<Character>();
        int rk = -1;
        for(int i = 0;i<n;i++){

            if(i!=0){
                set.remove(s.charAt(i-1));
            }
            while(rk+1<n && !set.contains(s.charAt(rk+1))){
                set.add(s.charAt(rk+1));
                ++rk;
            }
            maxlen = Math.max(maxlen, rk-i+1);
        }
        return maxlen;
    }
}
// @lc code=end

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章