最長不重複子串(精簡)

直接甩出代碼吧,有問題可以交流討論,有O(n)的解法,有興趣小夥伴的可以自行了解。
//動態規劃的算法求解( 時間複雜度是O(n^2) )
#include
#include
#include
using namespace std;
int main(){
char a[20]=“acbaefhkbq”;
int dp[20]={1};//記錄取第i個字符時的最大不重複字符串的長度dp[i]
int n=strlen(a);
int k=0,max_len=1;//K表示當前字符串首字符索引
for(int i=0;i<n;i++){
for(int j=k;j<i;j++){
if(a[j]==a[i]){
k=j+1;continue;
}
dp[i]=i+1-k;
max_len=max(dp[i],dp[1]);
}
}
cout<<max_len<<endl;
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章