lc.209 长度最小的子数组
2024-10-21 19:31:02
题目
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
示例
输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。
解题思路
- 题目中所要求得的是连续子数组
- 滑动窗口的方法:用一个for循环,循环变量是终止位置,先从数据元素0开始,一个个累加,找到满足条件的子数组;当找到满足条件的子数组时记录子数组长度,并且要将起始序列往前进1;再次执行for循环操作,直至终止位置到达最后一个数组元素
- 程序中要设定一个结果值,用来储存每次找到的符合条件的子数组的最短长度
代码实现
//滑动窗口的办法 题目中是寻找一个 连续子数组
int result = INT32_MAX; //将结果赋值为整数型最大值
int sum = 0;
int i = 0;
int len = 0; //定义找到的数组长度
for(int j = 0; j < nums.size(); j++){
sum += nums[j]; //不满足大于等于target时就一直往后加
while(sum >= target){ //当满足大于等于target时要开始移动开始位置的i
len = (j - i + 1);
result = result < len ? result : len; //记录此时找到的符合要求的数组长度,如果小于result就记录下来,直到找到符合条件的最小的数组长度
sum -= nums[i++]; //sum -= num[i]; & i++;
}
}
return result == INT32_MAX ? 0 : result;
最新文章
- sql注入时易被忽略的语法技巧以及二次注入
- 在Activity之间传递参数(一)
- 一个比较通用的makefile
- SharePoint Error - An unrecognized HTTP response was received when attempting to crawl this item
- fastReport 运行时设计报表 (mtm)
- php max_input_vars限制数组大小
- 【模板下载】innosetup 制作.net安装包的模板
- redmine后台运行命令
- 安装linux操作系统--浪潮服务器
- crtmpserver系列之一:流媒体概述
- ubuntu13.04 Thinkpad W520安装nvidia显卡驱动
- 手机安全卫士开发系列(2)——splash界面
- PHPCMS V9二次开发便捷自定义后台入口文件夹
- Linux SSH 互信
- Rich IntelliSense for jQuery
- 分享一个大神自己的blog
- Google地球查看香港地形
- xxxx-xx-xx的时间的加减
- mysql的表映射
- 51nod1079 poj2891 中国剩余定理与其扩展
热门文章
- pytorch 独热编码报错的解决办法:one_hot is only applicable to index tensor
- 统计学习导论(ISLR)(三):线性回归(超详细介绍)
- TCP协议之三次握手(二)
- 准备工作——安装python和开发工具
- 11 个Chrome骚技巧让你为所欲为
- 关于npm和yarn的坑
- CImage类使用
- 在安装SDK8.1和Visual Studio 2017时,提示“已停止工作”
- scala调用fastjson JSON.toJSONString()序列化对象出错
- 解决eclipse创建动态Web项目没有Web->;Dynamic Web Project问题