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;
        }
};
相关推荐
廋到被风吹走几秒前
【Spring】事务管理深度解析|从原理到实战
java·spring
xxxxxmy8 分钟前
同向双指针(滑动窗口)
python·算法·滑动窗口·同向双指针
释怀°Believe15 分钟前
Daily算法刷题【面试经典150题-5️⃣图】
算法·面试·深度优先
List<String> error_P16 分钟前
数据结构:链表-单向链表篇
算法·链表
ss27321 分钟前
ConcurrentHashMap:扩容机制与size()方法
算法·哈希算法
lkbhua莱克瓦2423 分钟前
Java进阶——IO流
java·开发语言·笔记·学习方法·io流
韩立学长23 分钟前
【开题答辩实录分享】以《自选便利店商品分类管理系统》为例进行选题答辩实录分享
java·mysql·web
阿杰同学26 分钟前
Java中55种锁,高级面试题,最新面试题
java·开发语言
2401_8603195228 分钟前
在React Native鸿蒙跨平台开发中实现一个冒泡排序算法并将其应用于数据排序,如何进行复制数组以避免直接修改状态中的数组
javascript·算法·react native·react.js·harmonyos
清晓粼溪28 分钟前
SpringCloud01-基础概念
java·开发语言·spring cloud