假设长度为A
的数组L
跳过value = k
对于给定的起点,我必须在数组中找到最高的和。
sum的方式应为将数组中获取的初始点相加,然后再进行初始point+k
跳过之后的下一个点,依此类推
那么最高的总和是多少?
例如数组a=[1,9,2]
k=2
那么最高的可能是9
我使用了两个for循环
for(int i=0;i<a.length;i++){
for(int j=i;j<a.length){
sum+=a[j];
j+=k;
}
if(sum>max)
max=sum;
sum=0;
}
尽管这样做有效,但其复杂度将为O(n^2)
;
怎么减少呢?