Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn\'t one, return 0 instead.
Example:
Input:s = 7, nums = [2,3,1,2,4,3]Output: 2 Explanation: the subarray[4,3]has the minimal length under the problem constraint.
Follow up:
If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log n).
Answer:
class Solution( ):
def minSubArrayLen(self, s, nums):
\"\"\"
:type s: int
:type nums: List[int]
:rtype: int
\"\"\"
l=len(nums)
if l==0:
return 0
i=0
j=0
tmpsum=nums[i]
minl=float(\'inf\')
while True:
if tmpsum>=s:
minl=min(minl,j-i+1)
tmpsum-=nums[i]
i+=1
else:
j+=1
if j<l:
tmpsum+=nums[j]
else:
break
if minl==float(\'inf\'):
return 0
return minl
i,j为两个边界,
如果sum大于目标值,则i向右移动
否则,则j向右移动
继续阅读与本文标签相同的文章
-
Cassandra sstableloader工具使用及原理解析
2026-05-18栏目: 教程
-
Qt编写控件属性设计器1-加载插件
2026-05-18栏目: 教程
-
Qt编写控件属性设计器2-拖曳控件
2026-05-18栏目: 教程
-
Aliyun Serverless VSCode Extension v1.9.0 发布
2026-05-18栏目: 教程
-
【从入门到放弃-ZooKeeper】ZooKeeper实战-分布式队列
2026-05-18栏目: 教程
