写了一个玄学时间复杂度不会证明,有没有大佬帮忙证明一下:
for(int i=2;i<=n;i++){
if(a[i-1]%a[i]==0){
int j=l[i-1]-1;
while(j>=1&&a[j]%a[i]==0) j--;
l[i]=j+1;
} else l[i]=i;
} for(int i=n-1;i>=1;i--){
if(a[i+1]%a[i]==0){
int j=r[i+1]+1;
while(j<=n&&a[j]%a[i]==0) j++;
r[i]=j-1;
} else r[i]=i;
ans=max(ans,r[i]-l[i]);
}