LeetCode 面试经典150题 209.长度最小的子数组

题目

给定一个含有 n个正整数的数组和一个正整数 target

找出该数组中满足其总和大于等于target的长度最小的 连续子数组

[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度**。** 如果不存在符合条件的子数组,返回 0

思路:双指针

代码

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

性能:时间复杂度O(n) 空间复杂度O(1)

注意:长度不固定的叫做双指针,长度固定的叫做滑动窗口。习惯上而已,只是叫法不同,本质是同一个东西。

相关推荐
道可到6 分钟前
程序员养生十大违章:你中了几条?
前端·后端·面试
这可不简单11 分钟前
前端性能优化:从浏览器渲染原理到实战(告别 “知其然不知其所以然”)
前端·css·面试
智驱力人工智能13 分钟前
使用手机检测的智能视觉分析技术与应用 加油站使用手机 玩手机检测
深度学习·算法·目标检测·智能手机·视觉检测·边缘计算
姚瑞南34 分钟前
【AI 风向标】四种深度学习算法(CNN、RNN、GAN、RL)的通俗解释
人工智能·深度学习·算法
渣哥1 小时前
多环境配置利器:@Profile 在 Spring 项目中的实战价值
javascript·后端·面试
补三补四1 小时前
SMOTE 算法详解:解决不平衡数据问题的有效工具
人工智能·算法
飞哥的AI笔记1 小时前
热题解析:什么是Few-shot Learning?为什么给几个例子模型就能学会?
面试
RTC老炮1 小时前
webrtc弱网-RobustThroughputEstimator源码分析与算法原理
网络·算法·webrtc
南北是北北1 小时前
Handler线程模型与内存
面试
汤姆Tom1 小时前
CSS 新特性与未来趋势
前端·css·面试