数组和窗口
题目描述
Description
给定一个整型数组arr和一个大小为w的窗口,窗口从数组最左边滑动到最右边,每次向右滑动一个位置,求出每一次滑动时窗口内最大元素的和。
Input
输入第一行为用例个数, 每个测试用例输入的第一行为数组,每一个元素使用空格隔开;第二行为窗口大小。
Output
输出每个测试用例结果。
Sample Input 1
1
4 3 5 4 3 3 6 7
3
Sample Output 1
32
题目解析
将窗口中的最大值统计求和
思路解析
-
暴力
-
区间最值问题可以用线段树
线段树可以看之前的线段树
代码实现
暴力
if __name__ == '__main__':
for _ in range(int(input())):
arr = list(map(int, input().strip().split(" ")))
n = int(input())
sum = 0
for p in range(len(arr) - n + 1):
temp = arr[0 + p:n + p]
sum += max(temp)
print(sum)