这是一道滑动窗口类的算法题,核心是计算连续k个元素的最大值与最小值的差。以下是解题思路和代码实现:

解题思路

  1. 解析输入:将输入字符串拆分为内存使用量数组memoryUsage和整数k
  2. 滑动窗口遍历:遍历数组,对每个长度为k的连续子数组,计算其最大值和最小值的差;
  3. 输出结果:将所有窗口的波动范围整理为数组形式的字符串。

代码实现(Python)

# 解析输入
s = input().strip()
# 拆分数组部分和k
arr_part, k_part = s.split('],')
memoryUsage = list(map(int, arr_part.strip('[').split(',')))
k = int(k_part.strip())

result = []
n = len(memoryUsage)
# 遍历每个长度为k的窗口
for i in range(n - k + 1):
    window = memoryUsage[i:i+k]
    # 计算窗口内的最大值-最小值
    diff = max(window) - min(window)
    result.append(str(diff))

# 格式化为输出字符串
print('[' + ','.join(result) + ']')

该方法的时间复杂度为O(n*k)n为数组长度),对于常规数据规模(如示例)可以高效运行;若数据规模较大,可优化为用单调队列将复杂度降至O(n)