【发布时间】:2020-10-18 20:48:32
【问题描述】:
我想找到总和等于k的长度最小的子数组。
Input: arr[] = {2, 4, 6, 10, 2, 1}, K = 12
Output: 2
说明:
总和为 12 的所有可能子数组是 {2, 4, 6} 和 {10, 2}。
Input: arr[] = { 1, 2, 4, 3, 2, 4, 1 }, K = 7
Output: 2
【问题讨论】:
-
到目前为止你尝试了什么,得到了什么结果?
-
连续子数组?
-
假设连续,使用两个指针,跟踪指针之间的子数组总和,并在获得满足目标的新最小子数组大小时记录距离。这是线性时间。根据您在目标的哪一侧决定要前进的指针。