Код: Виділити все
//https://janac.medium.com/what-is-the-sliding-window-algorithm-f9fcfe92b853
// алгоритм розсувного вікна (The sliding window algorithm)
// повертає максимальну суму k суміжних елементів масиву.
int intSize = 10; // розмір масиву
int k = 3; // розмір вікна
int intMaxSum; // максимальна сума у вікні
int intArray[] = {4, 2, 1, 7, 8, 1, 2, 8, 1, 0}; // функція поверне 1+7+8=16
void setup() {
Serial.begin(9600);
}
void loop() {
intMaxSum = maxSumOfSubarray2(intArray, k);
Serial.println(intMaxSum);
}
int maxSumOfSubarray2(int*intArray, int k) {
int sum;
for (int i = 0; i <= (intSize - k); i++) {
int tempSum = 0;
for (int j = i; j < (i + k); j++) {
tempSum += intArray[j];
}
if (tempSum > sum) {
sum = tempSum;
}
}
return sum;
}