[打卡5:leetcode3-无重复字符的最长子串] |刷题打卡

433 阅读2分钟

掘金团队号上线,助你 Offer 临门! 点击 查看详情

前言

第一次参加掘金打卡活动,别的不说 主要是奔着奖励来的。4.12开始为了达到14题小目标 冲冲冲!!!这是第五题

image.png

题目描述

题目链接:无重复字符的最长子串

题目描述我用截图leetcode的为主,所以题目如下图

image.png

思路分析

题目解析:题目的话倒是很简单给出一个字符串,求其最长的无重复连续字符串的长度 思路:先写个判断非空字符串是否重复的方法,如下图

image.png 然后把s切割成数组去遍历,得到每次无重复字符串的长度,然后遍历结束得到最大的长度值。 实现如下

image.png 点击测试 尴尬了 出现超时 所以是要优化了 image.png 一时没想到好的优化方法(挫败),然后选择了百度一下,参考链接 最后测试通过,搜到了好几个方法去解决的 滑动窗口或者数组+双指针暴力求解之类

AC 代码

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var lengthOfLongestSubstring = function(s) {

    let arr = [];
    let m = 0
    for(let i = 0; i < s.length; i++) {
        let index = arr.indexOf(s[i])
        if(index !== -1) {
            arr.splice(0, index+1);
        }
        arr.push(s[i])
        m = Math.max(arr.length, m) 
    }
    return m
};

总结

看完别人的解法感觉自己对算法一无所知,空间复杂度和时间复杂度的优化也不会,学无止境,希望可以养成刷题的习惯 那我相信就会有进步。今天这道是在别人的基础上解决的 多动手,多思考。第五题算法半完成,坚持就是胜利!!!

       ↓↓↓

算法系列链接

       ↑↑↑

这里可以点!这里可以点!这里可以点!