思路:
将长度为K的子数组,依次遍历并求和,找到最大的和并返回
代码如下
In [1]: def max_sub_array_of_size_k(array, k):
...: max_sum = 0
...: for i in range(0, len(array)-k+1):
...: cur_sum = sum(array[i:i+k])
...: max_sum = max(max_sum, cur_sum)
...: print('current sub array: ', array[i:i+k], '\t max_sum: ', max_sum)
...: return max_sum
In [2]: max_sub_array_of_size_k([2, 1, 5, 1, 3, 2, -1, 4, 4], 4)
current sub array: [2, 1, 5, 1] max_sum: 9
current sub array: [1, 5, 1, 3] max_sum: 10
current sub array: [5, 1, 3, 2] max_sum: 11
current sub array: [1, 3, 2, -1] max_sum: 11
current sub array: [3, 2, -1, 4] max_sum: 11
current sub array: [2, -1, 4, 4] max_sum: 11
Out[23]: 11