算法:滑动窗口
创始人
2024-03-14 00:18:02
0

一.和大于等于 target 的最短子数组

1.1 题目描述

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

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例 1:

输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。
示例 2:

输入:target = 4, nums = [1,4,4]
输出:1
示例 3:

输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/2VG8Kg
 

1.2 思路以及代码

使用滑动窗口

nums231243
target:7
sum2

nums231243
target:7
sum5

 

nums231243
target:7
sum6

 

nums231243
minLen4
sum8

这时候 target >sum,同时记录长度为4,start=0;end=3

然后我们删掉开始的2,去确窗口的sum

nums231243
minLen4
sum6
nums231243
minLen4
sum10

 因为sum>=target,所以start往后移,直到 sum

nums231243
minLen4
sum7

 

nums231243
minLen4
sum6

 

nums231243
minLen4
sum9

 因为sum>=target,所以start往后移

nums231243
minLen4
sum7

 

public static  int MinSubArrayLen1(int target, int[] nums){int start = 0;int end = 0;int finalEnd = 0;int sum = 0;int min = nums.Length +1;for (; end < nums.Length; end++){sum += nums[end];while (sum >= target){if (min > end - start + 1){min=end-start+1;finalEnd=end;}sum-= nums[start];start++;}}Console.WriteLine("min:"+min+"  end:"+finalEnd);
//以下这个循环需要判断min

相关内容

热门资讯

央行:进一步丰富维护金融市场稳... 每经AI快讯,央行网站12月26日消息,中国人民银行近日发布了《中国金融稳定报告(2025)》。下一...
新华鲜报丨利好跨国公司!这项跨... 新华社北京12月26日电(记者刘开雄、吴雨)中国人民银行、国家外汇管理局12月26日发布通知,在总结...
日元空头共识渐成:2026年或... 随着日本央行最新加息举措未能提振汇率,华尔街对日元的看空情绪再度升温,市场正逐渐形成日元将长期疲软的...
北平锋:民进党当局对所谓“两岸... 12月26日,台湾《中国时报》报道,陆委会近日推动所谓“两岸人民关系条例”四项修正,包含:公务员赴陆...
AI核心产业超万亿,工信部将完... 今年,工业经济顶压前行、向新向优发展,展现强大韧性和活力。 12月25日至26日,全国工业和信息化工...
神州泰岳(300002)披露全... 截至2025年12月26日收盘,神州泰岳(300002)报收于11.37元,较前一交易日上涨0.09...
车企起诉电池企业第一案!吉利旗... 出品 | 搜狐汽车·汽车咖啡馆 作者 | 胡耀丹 2024年底发出的回旋镖,在2025年底向欣旺达疾...
海南产经新观察:封关政策释红利... 中新网海南东方12月26日电 (陈英清)“海南自贸港封关运作顺利实施,政策红利持续释放,南繁水稻制种...
无证售药、两地维权!养生馆纠纷... 一副自制中药制剂,引发两地法院诉讼;一次耐心调解,让双方握手言和。近日,饶平县人民法院调解一宗因养生...