思路
设状态dp[i]表示以i结尾的最长子串
由于dp[0]....dp[i-1]已知,故只需要将nums[i]尝试分别并入取最大的那一个即可
由于是连续子串,故dp[i]实际依赖O(1)个子问题
故状态转移方程为
dp[i] = dp[i-1] + 1
实现
(匡红一的位置,如果i从0开始,则会多计算一次;匡红二的位置,如果直接重置为1,则表示将之前的字符全部舍弃重新计算,如abad,重置为1会将ab舍弃,但实际上b应该被保留,即i-index)
思路
设状态dp[i]表示以i结尾的最长子串
由于dp[0]....dp[i-1]已知,故只需要将nums[i]尝试分别并入取最大的那一个即可
由于是连续子串,故dp[i]实际依赖O(1)个子问题
故状态转移方程为
dp[i] = dp[i-1] + 1
实现
(匡红一的位置,如果i从0开始,则会多计算一次;匡红二的位置,如果直接重置为1,则表示将之前的字符全部舍弃重新计算,如abad,重置为1会将ab舍弃,但实际上b应该被保留,即i-index)
本文标题:DP--无重复字符的最长子串
本文链接:https://www.haomeiwen.com/subject/rfucrrtx.html
网友评论