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;
        }
};
相关推荐
qq_2704900962 分钟前
基于SSM的智能校内点餐系统设计与实现
java·eclipse·tomcat·mybatis
兩尛6 分钟前
HJ43 迷宫问题
算法
大道戏6 分钟前
互联网程序设计第12 讲 RMI 程序设计
java·开发语言·计算机网络
小龙报9 分钟前
【算法通关指南:数据结构与算法篇(五)】树的 “自我介绍”:从递归定义到存储绝技(vector vs 链式前向星)
c语言·数据结构·c++·算法·链表·启发式算法·visual studio
报错小能手9 分钟前
数据结构 顺序栈
数据结构·算法
点云SLAM15 分钟前
C++包装器之类型擦除(Type Erasure)包装器详解(4)
c++·算法·c++17·类型擦除·c++高级应用·c++包装器·函数包装
yugi98783820 分钟前
TDOA算法MATLAB实现:到达时间差定位
前端·算法·matlab
路边草随风22 分钟前
flink实现写orc对数据进行分目录(分区表)写入
java·大数据·flink
geekmice28 分钟前
通过账户信息操作加深对DTO,VO,BO理解
java
r***013830 分钟前
Java进阶,时间与日期,包装类,正则表达式
java·mysql·正则表达式