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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

import java.util.Arrays;

class Solution {
    public int lengthOfLongestSubstring(String s) {
        if (s == null || s.length() == 0) {
            return 0;
        }

        int[] hash = new int[256];

        Arrays.fill(hash, -1);

        int pre = 0;
        int ret = 0;

        for (int i = 0; i < s.length(); ++i) {
            pre = Math.min(pre + 1, i - hash[s.charAt(i)]);
            ret = Math.max(ret, pre);
            hash[s.charAt(i)] = i;
        }

        return ret;
    }
}
上一篇:线索二叉树(先序)


下一篇:java实现根据先序遍历和中序遍历结果复原二叉树(剑指offer)