nums 里的元素都是正数,窗口右端点向右移动时,窗口和只会变大。因此用双指针维护和至少为 target 的最短窗口。
给定 n 个正整数组成的数组 nums,以及一个正整数 target。请找出和至少为 target 的连续子数组,并输出其中最短的长度。连续子数组是原数组中下标连续的一段,不能把不相邻的元素拼在一起。
这样的子数组可能有多段,只输出最短长度,不用输出下标。若没有任何一段的和达到 target,输出 0。
第一行两个整数 n、target。
第二行 n 个正整数 numsi。
1≤n≤105
1≤numsi≤104
1≤target≤109
连续子数组的和最大约为 109,计算时使用 64 位整数。
输出一个整数,表示最短长度。不存在时输出 0。
输入
6 7
2 3 1 2 4 3
输出
2
说明
4+3=7,长度是 2。更靠前的 2+4=6,还没有达到 7。单个元素都小于 7。
输入
4 20
2 3 4 5
输出
0
说明
全部元素之和是 14,仍然小于 20,不存在满足条件的子数组。
输入
5 4
1 2 4 1 3
输出
1
说明
第三个数 4 已经不小于 target,最短长度是 1。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册