题目

给定一个含有 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;

最新文章

  1. sql注入时易被忽略的语法技巧以及二次注入
  2. 在Activity之间传递参数(一)
  3. 一个比较通用的makefile
  4. SharePoint Error - An unrecognized HTTP response was received when attempting to crawl this item
  5. fastReport 运行时设计报表 (mtm)
  6. php max_input_vars限制数组大小
  7. 【模板下载】innosetup 制作.net安装包的模板
  8. redmine后台运行命令
  9. 安装linux操作系统--浪潮服务器
  10. crtmpserver系列之一:流媒体概述
  11. ubuntu13.04 Thinkpad W520安装nvidia显卡驱动
  12. 手机安全卫士开发系列(2)——splash界面
  13. PHPCMS V9二次开发便捷自定义后台入口文件夹
  14. Linux SSH 互信
  15. Rich IntelliSense for jQuery
  16. 分享一个大神自己的blog
  17. Google地球查看香港地形
  18. xxxx-xx-xx的时间的加减
  19. mysql的表映射
  20. 51nod1079 poj2891 中国剩余定理与其扩展

热门文章

  1. pytorch 独热编码报错的解决办法:one_hot is only applicable to index tensor
  2. 统计学习导论(ISLR)(三):线性回归(超详细介绍)
  3. TCP协议之三次握手(二)
  4. 准备工作——安装python和开发工具
  5. 11 个Chrome骚技巧让你为所欲为
  6. 关于npm和yarn的坑
  7. CImage类使用
  8. 在安装SDK8.1和Visual Studio 2017时,提示“已停止工作”
  9. scala调用fastjson JSON.toJSONString()序列化对象出错
  10. 解决eclipse创建动态Web项目没有Web-&gt;Dynamic Web Project问题