leetcode209_长度最小的子数组

要求某个连续的区间内的元素值总和>=S .

思路:滑动窗口:本质上是一种双指针法。

(1)初始化left = right = 0;

(2)left不动,right移动,扩大窗口,直至符合要求;

(3)right不动,left移动,缩小窗口,直至不符合要求;

(4)重复(2)和(3),直至right到达末尾。

代码:

cpp 复制代码
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int result = nums.size() + 1;
        int sum = 0;
        for(int i = 0, j = 0; j < nums.size(); j++){
            sum += nums[j];
            while(sum >= target){
                result = min(result, j - i + 1);
                sum -= nums[i];
                i++;
            }

        }
        return result == nums.size() + 1? 0 : result;
        }
};
相关推荐
啃臭6 小时前
AOP和反射
java·spring boot
西凉的悲伤7 小时前
java 使用PNG图片隐写文件
java·图片隐写·png
有梦想的小何7 小时前
Cursor AI 编程实战(篇一):Prompt 与案例总结
java·linux·prompt·ai编程
@我漫长的孤独流浪7 小时前
计算机系统核心概念与性能优化全解析
算法·计算机外设
如竟没有火炬7 小时前
接雨水22
数据结构·python·算法·leetcode·散列表
ʚ希希ɞ ྀ7 小时前
二叉树的锯齿层序遍历
数据结构·算法
河阿里7 小时前
SpringBoot:Spring Task定时任务完整使用教学
java·spring boot·spring
jiayong237 小时前
Tool Permission 与 Sandbox 的安全流水线:Agent 工具系统的工程边界
java·数据库·安全·agent
rururunu7 小时前
Windows 下切换 Java 环境太复杂了,我做了个 cli 工具,可以快速安装,切换 Java 版本
java