При изучении алгоритма KMP я наткнулся на следующий код для заполнения таблицы
for(int i=1,j=0;i<ar.length;i++)
{
if(s.charAt(i)==s.charAt(j))
{
ar[i]=++j;
}
else if(j>0)
{
j=ar[j-1];
i--;
}
}
В другом случае, если условие мы приостанавливаем на i и уменьшаем на j. Я думаю, что есть вероятность, что мы продолжим уменьшать j до 0, поэтому в целом, если мы уменьшим j до 0 для каждого i, общая сложность времени не будет равна O(n^2)
?