您的位置:首页 > 其它

LeetCode--无重复字符的最长子串

2019-04-13 20:05 260 查看

题目:


答案(查看到最好的):

class Solution {
public:
int lengthOfLongestSubstring(string s) {
int  size,i=0,j,k,max=0;
size = s.size();
for(j = 0;j<size;j++){
for(k = i;k<j;k++)
if(s[k]==s[j]){
i = k+1;
break;
}
if(j-i+1 > max)
max = j-i+1;
}
return max;
}
};

结果:


采用滑动窗口的方法,由前往后逐渐扩展,每次搜索有无重复均是往前搜索。
基本思路:
1、记左侧判断点为A[i],且起始判断点为A[0],起始当前元素为A[0]
2、判断当前元素A[j]之前是否已经存在该元素
3、
(1)若不存在,将长度更新为:j-i+1;并继续更新当前元素为下一元素,即j=j+1,跳转至步骤2
(2)若存在,则将左侧判断点更新为:重复元素的下标+1,将长度更新为:j-i+1
4、输出长度

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: