给定一个大小为 N 的数组 arr[] 和一个整数 K。大小为 K 的子数组的最大值。
例 1:
输入
N = 9,K = 3
arr[] = 1 2 3 1 4 5 2 3 6
输出: N = 9
3 3 4 5 5 5 6
说明
第一个连续子数组 = {1 2 3} 最大值 = 3
第 2 个连续子数组 = {2 3 1} 最大值 = 3 最大值 = 3
第 3 个连续子数组 = {3 1 4} 最大值 = 4 最大值 = 4
第 4 个连续子数组 = {1 4 5} 最大值 = 5
第 5 个连续子数组 = {4 5 2} 最大值 = 5
第 6 个连续子数组 = {5 2 3} 最大值 = 5
第 7 个连续子数组 = {2 3 6} 最大值 = 6
例 2:
输入
N = 10,K = 4
arr[] = 8 5 10 7 9 4 15 12 90 13
输出: N = 10
10 10 10 15 15 90 90
说明
第一个连续子数组 = {8 5 10 7},最大值 = 10
第 2 个连续子数组 = {5 10 7 9},最大值 = 10
第 3 个连续子数组 = {10 7 9 4},最大值 = 10
第 4 个连续子数组 = {7 9 4 15},最大值 = 15
第 5 个连续子数组 = {9 4 15 12}、
最大 = 15
第 6 个连续子数组 = {4 15 12 90}、
最大值 = 90
第 7 个连续子数组 = {15 12 90 13}、
最大值 = 90
预期时间复杂度: O(N)
预期辅助空间:O(k) O(k)
限制条件
1 ≤ N ≤ 10
1 ≤ K ≤ N
0 ≤ arr[i] ≤ 10
-------
连续子数组的最大值,用优先队列最方便了,如果遇到索引值超过k的,那么pop即可。