C语言刷力扣
题名
一 .无重复字符的最长子串
二 滑动窗口
1.滑动窗口的核心思想有以下几点
2.使用双指针进行窗口的维护left和right
3.当出现重复时,需要找到一个出现重复的位置
4.当出现重复时,修改对应left下标
让我们直接看代码
int lengthOfLongestSubstring(char * s)
{
int left = 0;
int right = 0;
int max = 0;
int i ,j;
int n = strlen (s);
int haveSameChar = 0;
for( i = 0;i<n;i++)
{
if(left<=right)
{
haveSameChar = 0;
for( j = left;j<right;j++) //j = left
{
if(s[j] == s[right])
{
haveSameChar = 1;
break;
}
}
if(haveSameChar)
{
//指向下一个
left = j+1;
}
}
max = max<(right-left+1)?(right-left+1):max;//要记得加一
right++; //这边记得加1
}
return max;
}
总结
第一次写博客,等我过几天在来看代码不懂得地方记得注释,不对的地方还请指教