leetcode top 100 (8)无重复字符的最长子串(滑动窗口

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

示例 1:

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

import java.util.HashMap;
import java.util.Map;

/**
 * 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
 * <p>
 * <p>
 * <p>
 * 示例 1:
 * <p>
 * 输入: s = "abcabcbb"
 * 输出: 3
 * 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
 */
public class Top8 {

    //采用滑动窗口,用一个hash表记录字符串出现最新位置,当出现重复值时候,左指针移动到原新加入字符串位置的右边一个的位置
    private static int getLargeSizeString(String data) {
        Map<Character, Integer> charMap = new HashMap<>();
        int i = -1;
        int maxSize = 0;
        for (int j = 0; j < data.length(); j++) {
            if (charMap.containsKey(data.charAt(j))) {
                i = charMap.get(data.charAt(j));
            }
            charMap.put(data.charAt(j), j);
            maxSize = Math.max(j - i, maxSize);
        }
        return maxSize;
    }

    public static void main(String[] args) {
        String data = "dasjdkajdsaasg";
        System.out.println(getLargeSizeString(data));
    }
}
相关推荐
科技小E几秒前
国标视频分析平台EasyGBS×自动化AI算法训练服务器DLTM,把通用AI炼成你的现场AI
算法·自动化·音视频
zander2584 分钟前
LeetCode 15. 三数之和
算法
AiNightVision6 分钟前
NMC存算一体与AI ISP
人工智能·算法·车载系统·自动驾驶·无人机·视频·智能硬件
不穿鞋的懒羊羊15 分钟前
高精度算法——加、减、乘、除
算法
liliangcsdn25 分钟前
基本面因子计算的示例分析
算法
Lyyaoo.1 小时前
【动态规划】【待更新】
java·数据结构·算法
hqyjzsb1 小时前
规划工商管理大学成长:搭建四层能力体系,重视高阶的 AI 能力建设
开发语言·人工智能·python·microsoft·职场和发展·数据挖掘·业界资讯
AgentMaster1 小时前
开源智能客服系统技术对比:从架构设计到生产部署的实战指南
大数据·人工智能·算法
我不会起名字3221 小时前
一天一道算法题(35):电话号码的字母组合
java·数据结构·后端·python·leetcode·go·回溯
weixin_307779131 小时前
C++代码实现MATLAB中的ode23t函数功能
开发语言·c++·算法·matlab