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

解题思路

使用双指针加哈希表。右指针先遍历每个字符将每个字符及其对应位置放进哈希表, 如果哈希表中已经存在该字符便更新左指针(取当前值和哈希表中比较的最大值)每次移动时更新最大长度。

代码

/* */classSolution {public:intlengthOfLongestSubstring(string s){//if(s.empty()) return 0;int left =-1,maxlen =0;unordered_map