3254. 查找大小为K的子数组的力量 I

3254. 查找大小为K的子数组的力量 I

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

给定一个整数数组和正整数k,求所有大小为k的子数组的“力量”。如果子数组元素连续且升序,返回最大元素;否则返回-1。使用滑动窗口方法检查每个子数组,最终返回结果数组。

🎯

关键要点

  • 给定一个整数数组和正整数k,求所有大小为k的子数组的“力量”。
  • 子数组的力量定义为:如果元素连续且升序,返回最大元素;否则返回-1。
  • 需要返回一个大小为n - k + 1的结果数组,结果数组的每个元素对应于各自子数组的力量。
  • 使用滑动窗口方法检查每个大小为k的子数组。
  • 检查子数组是否排序:连续元素的子数组应满足条件:nums[i+1] - nums[i] == 1。
  • 时间复杂度为O(n * k),因为需要遍历n - k + 1个子数组,每个子数组检查O(k)的时间。
  • 边界情况:如果k = 1,每个子数组都是排序的,力量为元素本身。
  • 示例输出:对于nums = [1, 2, 3, 4, 3, 2, 5],k = 3,输出为[3, 4, -1, -1, -1]。
➡️

继续阅读