给定大小为n和子数组大小为k的无序数组,从所有连续的子数组总和中找出最小和。查找数组中K个序列项的最小总和
我们将有(N-(K-1))子阵列
实施例:
阵列(N = 5):5 3 0 2 5
K = 3
子阵列:5 3 0,3 0 2,0 2 5
和:8,5,7
最小总和:5
我的代码:
sum = 0;
for(index=0; index<K; index++){
sum = sum + array[index];
}
minSum = sum;
if(N!=K){
for(index=1; index<=(N-H); index++){
sum = sum - array[index-1] + array[index+K-1];
if(sum < minSum){
minSum = sum;
}
}
}
cout << minSum << endl;
我的问题是:
是否有任何有效的代码在那里做到这一点? 由于数组有10^5个元素,所以需要很多时间。
10^5个元素可能是问题..:}在任何情况下,不应该是 “多少时间”,比较。正在看什么类型的时光?预期/要求是什么? – user2864740