排序写题解
不限
栈
贪心
记忆化搜索
队列
Map
数组
哈希表
双指针
字符串
动态规划
字节跳动
拼多多
滑动窗口
C
C++
C#
Go
Java
JavaScript
Kotlin
PHP
Python
Python3
Rust
Swift
拼多多
笔记
哈希
java数组
滑动窗口
list
快慢指针
模拟
cpp
Set
hash
hashmap
贪心
dp
双指针
解题思路: 长度为 N 的字符串共有 \frac{(1 + N)N}{2} 个子字符串(复杂度为 O(N^2) ),判断长度为 N 的字符串是否有重复字符的复杂度为 O(N) ,因此本题使用暴力法解决的复杂度为 O(N^3) 。考虑使用动态规划降低时间复杂度。 动态规划解析: 状态定义: 设动态规划列表 dp
105.3k
解题思路1 基本思想就是将串划分子段,如果出现重复,则滑动窗口,变更start的位置,统计新的子串的长度,同时不断更新结果值 代码 解题思路2 map记录字符在当前子串上次出现的位置 代码
4.0k
5.3k
1.1k
1.7k
2.8k
题目列表
随机一题
class Solution { public: int lengthOfLongestSubstring(string s) { } };
关闭上一题解36 / 849下一题解

题目描述

解题思路

使用滑动窗口算法;当遇到重复字符的时候删除重复字符前面(包括这个重复字符)的所有字符;记录达到不重复的最长子字符长度;循坏之后有更长的不重复子串就更新我们的不重复最大子字符串长度;

代码

/** *@param{string}s *@return{number} */var lengthOfLongestSubstring =function(s){ var str=[],maxlength=0; for(var i=0;i