LeetCode 003:无重复字符的最长子串

一、题目描述

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

示例:

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

二、解题思路

滑动窗口,双指针,开始时左右指针都在起点。右指针不断往右遍历,当出现重复字符时左指针移动到先前存入的出现重复字符的位置的下一个位置,同时要确保左指针不会回退。

Java:

class Solution {
    public int lengthOfLongestSubstring(String s) {
        //哈希表记录字符出现的位置
        HashMap map = new HashMap<>();
        //左指针
        int left=0;
        //记录最大长度
        int max=0;
        //for循环作为右指针
        for(int right=0;right

你可能感兴趣的:(LeetCode,leetcode,算法,java)