c++算法练习
904.水果成篮

class Solution {
public:
int totalFruit(vector<int>& fruits) {
int l=0,ret=0;
unordered_set<int> hs;//哈希表
for(int r=0;r<fruits.size();r++)
{
if(hs.find(fruits[r])==hs.end())
hs.insert(fruits[r]);
int r1=r;
while(hs.size()>2)//改变窗口
{
r1--;
if(fruits[r1]!=fruits[r-1])
{hs.erase(fruits[r1]);l=r1+1;}
}
ret=max(ret,r-l+1);
}
return ret;
}
};
2730.找到最长的半重复子字符串

class Solution {
public:
int longestSemiRepetitiveSubstring(string s) {
int f=0,ret=0,l=0;
for(int r=0;s[r];r++)
{
if(r&&s[r]==s[r-1])f++;
while(f==2)
{
l++;
if(s[l]==s[l-1])
{
f=1;break;
}
}
ret=max(ret,r-l+1);
}
return ret;
}
};