(LeetCode 面试经典 150 题 ) 209. 长度最小的子数组(双指针)

题目:209. 长度最小的子数组


思路:双指针,时间复杂度0(n)。

sum记录左右指针内的数组元素之和,当sum-nums[left]>=target时,移动左指针。

C++版本:

cpp 复制代码
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int n=nums.size();
        int mn=n+1;
        int sum=0;
        for(int left=0,right=0;right<n;right++){
            sum+=nums[right];
            while(sum-nums[left]>=target){
                sum-=nums[left];
                left++;
            }
            if(sum>=target){
                mn=min(mn,right-left+1);
            }
        }
        return mn==n+1 ? 0:mn;
    }
};

JAVA版本:

java 复制代码
class Solution {
    public int minSubArrayLen(int target, int[] nums) {
        int n=nums.length;
        int mn=n+1;
        int sum=0;
        for(int left=0,right=0;right<n;right++){
            sum+=nums[right];
            while(sum-nums[left]>=target){
                sum-=nums[left];
                left++;
            }
            if(sum>=target){
                mn=Math.min(mn,right-left+1);
            }
        }
        return mn==n+1 ? 0:mn;
    }
}

GO版本:

go 复制代码
func minSubArrayLen(target int, nums []int) int {
    n:=len(nums)
    sum,mn:=0,n+1
    for left,right:=0,0;right<n;right++ {
        sum+=nums[right]
        for sum-nums[left]>=target {
            sum-=nums[left]
            left++
        }
        if sum>=target {
            mn=min(mn,right-left+1)
        }
    }
    if mn==n+1 {
        return 0
    }
    return mn
}
相关推荐
清心歌8 分钟前
记一次系统环境变量更改后在IDEA中无法读取新值的排查过程
java·后端·intellij-idea·idea
大尚来也11 分钟前
驾驭并发:.NET多线程编程的挑战与破局之道
java·前端·算法
dong__csdn14 分钟前
jdk添加信任证书
java·开发语言
向阳而生,一路生花16 分钟前
深入浅出 JDK7 HashMap 源码分析
算法·哈希算法
hhcccchh28 分钟前
1.1 HTML 语义化标签(header、nav、main、section、footer 等)
java·前端·html
随风,奔跑31 分钟前
Spring Security
java·后端·spring
君义_noip39 分钟前
信息学奥赛一本通 4150:【GESP2509七级】⾦币收集 | 洛谷 P14078 [GESP202509 七级] 金币收集
c++·算法·gesp·信息学奥赛·csp-s
Ricky_Theseus1 小时前
静态链接与动态链接
c++
摸个小yu1 小时前
【力扣LeetCode热题h100】链表、二叉树
算法·leetcode·链表
汀、人工智能1 小时前
[特殊字符] 第93课:太平洋大西洋水流问题
数据结构·算法·数据库架构·图论·bfs·太平洋大西洋水流问题