无重复字符的最长子串

简介: 无重复字符的最长子串

无重复字符的最长子串

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

示例 1:

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

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

一、解题思路

看到任何一个关于什么子串问题,还是了数组问题
先这么想,以i结尾最长的答案是什么或者以i开头最长的答案是什么
这道题我们想以i结尾最长子数组是多长

答案是从左往右求的
当我来到i位置的时候,i-1位置的答案你求过了,i-2位置的答案你求过了,i-3位置的答案你求过了
那么我就想我结尾时的答案能不能由我之前求出答案帮我加速得到,
为啥要把求解流程定位每个位置结尾或每个位置开头,我就是想用动态规划

二、代码

class Solution {
    public int lengthOfLongestSubstring(String s) {
        char[] str=s.toCharArray();
        int n=str.length;
        int[] map=new int[256];
        for(int i=0;i<256;i++){
            map[i]=-1;
        }
        int pre=0;
        int ans=0;
        int cur=0;
        for(int i=0;i<n;i++){
            int p1=i-map[str[i]];
            int p2=pre+1;
            cur=Math.min(p1,p2);
            ans=Math.max(ans,cur);
            pre=cur;
            map[str[i]]=i;
        }
        return ans;

    }
}
相关文章
|
11月前
|
机器学习/深度学习 人工智能 运维
智能运维在现代IT系统中的应用与挑战####
本文深入探讨了智能运维(AIOps)在现代IT系统中的关键作用,通过具体案例分析,揭示了其在提升系统稳定性、优化资源配置及自动化故障处理方面的显著优势。同时,文章也指出了实施智能运维过程中面临的数据安全、技术整合及人员技能转型等挑战,并提出了相应的解决策略,为读者提供了全面而深刻的见解。 ####
253 6
|
12月前
|
SQL 存储 安全
网络安全与信息安全的现代挑战:漏洞、加密与意识
【10月更文挑战第20天】在数字时代的浪潮下,网络安全和信息安全的重要性日益凸显。本文旨在探讨当前网络安全面临的主要挑战,包括安全漏洞的发现与利用、加密技术的应用与局限,以及提升个人和组织的安全意识的必要性。通过分析这些关键领域,我们不仅能更好地理解网络威胁的本质,还能采取有效措施保护我们的数字资产。文章将提供对网络安全现状的深刻见解,并指出未来研究的方向。
|
缓存 UED
什么是Expires字段
【8月更文挑战第18天】什么是Expires字段
442 1
|
Ubuntu Linux Shell
10-23|如何查看linux当前时间
10-23|如何查看linux当前时间
|
人工智能 编解码 自然语言处理
AI文生图模型DALL·E 3
8月更文挑战第15天
|
算法 Java 数据挖掘
使用MeanShift算法进行图像分割的实现
使用MeanShift算法进行图像分割的实现
|
程序员 项目管理
程序员35岁会失业吗
一名有企业经验的博士生认为,虽然程序员的中年危机并非必然导致失业,但35岁时需应对技术快速发展的挑战。关键在于理解新技术对职业的影响,持续学习(如参加培训、阅读技术资料),关注行业趋势,专注特定领域以成为专家,参与开源项目和技术社群,以及培养软技能。通过这些策略,资深程序员能保持竞争力。
|
数据采集 JavaScript 前端开发
Shell脚本自动抢购火车票
Shell脚本自动抢购火车票
278 3
|
Shell Python
概率分析:为什么葫芦娃救爷爷是一个一个地救成功率最高?
概率分析:为什么葫芦娃救爷爷是一个一个地救成功率最高?
354 0
|
Web App开发 网络协议 安全
深入理解网络协议:通信世界的基石
深入理解网络协议:通信世界的基石
282 0