怎样给网站或者商品做推广,中企动力销售陪酒多吗,学院网站建设及维护实施办法,网站被取消备案文章目录 [toc]题目描述样例输入输出与解释样例1样例2样例3 提示进阶Python实现前缀和二分查找滑动窗口 个人主页#xff1a;丷从心
系列专栏#xff1a;LeetCode
刷题指南#xff1a;LeetCode刷题指南 题目描述
给定一个含有n个正整数的数组和一个正整数target找出该数组… 文章目录 [toc]题目描述样例输入输出与解释样例1样例2样例3 提示进阶Python实现前缀和二分查找滑动窗口 个人主页丷从心·
系列专栏LeetCode
刷题指南LeetCode刷题指南 题目描述
给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的连续子数组[numsl, numsl1, ..., numsr-1, numsr]并返回其长度如果不存在符合条件的子数组返回0 样例输入输出与解释
样例1
输入target 7nums [2,3,1,2,4,3]输出2解释子数组[4,3]是该条件下的长度最小的子数组
样例2
输入target 4nums [1,4,4]输出1
样例3
输入target 11nums [1,1,1,1,1,1,1,1]输出0 提示
1 target 10^91 nums.length 10^51 nums[i] 10^5 进阶
如果已经实现O(n)时间复杂度的解法尝试设计一个O(nlog(n))时间复杂度的解法 Python实现
前缀和二分查找
class Solution:def minSubArrayLen(self, s: int, nums: List[int]) - int:n len(nums)res n 1sums [0]for i in range(n):sums.append(sums[-1] nums[i])for i in range(1, n 1):target sums[i - 1] sbound bisect.bisect_left(sums, target)if bound ! len(sums):res min(res, bound - (i - 1))return res if res ! n 1 else 0滑动窗口
class Solution:def minSubArrayLen(self, target: int, nums: List[int]) - int:n len(nums)res, sum n 1, 0start, end 0, 0while end n:sum nums[end]while sum target:res min(res, end - start 1)sum - nums[start]start 1end 1return res if res ! n 1 else 0