题解 | 长度最小的连续子数组

长度最小的连续子数组

https://www.nowcoder.com/practice/10dd5f8c5d984aa3bd69788d86aaef23

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @param target int整型 
# @return int整型
#
class Solution:
    def minSubarray(self , nums: List[int], target: int) -> int:
        # write code here
        n, total, l = len(nums), 0, 0#数组长度,滑动窗口内数组总和,滑动窗口左下标
        ans = n+1#最短连续子数组长度
        for i in range(n):#遍历整个数组
            total += nums[i]#滑动窗口向右拓展
            while total>=target:#滑动窗口左边界收缩
                ans = min(ans,i-l+1)
                total -= nums[l]
                l += 1
        return ans#返回答案

全部评论

相关推荐

02-07 10:52
复旦大学 Java
混子不想混:非常能理解,感觉他们就靠着入行早,打压新人一样。我这个公司也是,天天干的累死累活,然后绩效打C,合着让新人被绩效,像是年底攒棺材本一样。总是打击之后,还会让人开始自我怀疑,是不是我努力的还不够,实际上并不是,就是他们不做人,故意打压新人。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务