( C++) Am nevoie de un algoritm care determină cea mai lunga secvenţă care se repetă într-un şir.
Exemplu: m=8, X={1, 4, -1, 5, 10, 1, 4, 17};
lungimea 2, poziţiile de început i1=2 şi i2=6;
Răspunsuri la întrebare
Răspuns de
3
#include <iostream>
using namespace std;
int main(){
int n, i, li, ls, t, k, m[1000];
//Declarare date
cin >> n;
for(i=0;i<n;i++){
cin >> m[i];
}
//Cautare secventa maxima care se repeta
int mx=0, cr=0;
for(li=0;li<n;li++){
for(ls=li;ls<n;ls++){
cr=ls-li;
for(t=ls+1;t<n;t++){
bool ok=1;
for(k=0;k<=cr && ok;k++){
if(m[li+k]!=m[t+k]) ok=0;
}
if(ok){
if(cr > mx) mx=cr;
}
}
}
}
cout << mx+1;
}
Anexe:

Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Totusi programul e deja suficient de complex. Cateva conditii in plus ar afecta lizibilitatea programului si l-ar face mai greu de inteles.