编写实现滑动窗口操作的c语言程序
时间: 2024-02-25 16:25:19 浏览: 39
好的,我可以帮您解答这个问题。滑动窗口是一种常见的算法,可以用于解决数组或字符串的一些问题,比如查找最长子串或子序列。以下是一个简单的滑动窗口的C语言实现示例:
```c
#include <stdio.h>
int slidingWindow(int arr[], int n, int k) {
int sum = 0, max_sum = 0;
for (int i = 0; i < k; ++i) {
sum += arr[i]; //初始化窗口和
}
max_sum = sum;
for (int i = k; i < n; ++i) {
sum += arr[i] - arr[i-k]; //滑动窗口
if (sum > max_sum) {
max_sum = sum;
}
}
return max_sum;
}
int main() {
int arr[] = {1, 5, 9, -1, 6, -7, 2, -5};
int n = sizeof(arr) / sizeof(arr[0]);
int k = 3;
int max_sum = slidingWindow(arr, n, k);
printf("Max Sum: %d\n", max_sum);
return 0;
}
```
滑动窗口算法的时间复杂度为O(n),其中n为数组或字符串的长度。希望我的回答对您有所帮助!