一:题目

二:暴力+滑动窗口

1:暴力解法

class Solution {public:int min (int a ,int b){return a < b ? a : b;}int minSubArrayLen(int target, vector<int>& nums) {int minx = 100001;for(int i = 0; i < nums.size(); i++){vector<int> v;int sum = nums[i];v.push_back(nums[i]);for(int j = i + 1; j < nums.size(); j++){if(sum < target){sum += nums[j];v.push_back(nums[j]);}else{break;//当已经找到超过target的序列的时候  就可以跳出循环}}if(sum >= target)minx = min(minx,v.size());}if(minx == 100001)return 0;else        return minx;}
};

2:滑动窗口

(1):思路

思路:
1.滑动窗口方法,类似与双指针
2.先介绍滑动窗口的三要素
滑动窗口的起始位置,
窗口的范围大小
窗口的结束位置
3.在本题中,我们的起始位置是数组的开头,窗口的范围大小是我们累加的和,结束位置是我们的累加和大于target 的元素位置.
4.那么滑动窗口的精髓之处在于移动起始位置的指针,当我们统计到一个满足target的时候,我们将sum 剪去 nums[i++] (i是起始位置) ,那么就相当于我们向后移动一个元素

(2):上码

class Solution {public:int min (int a ,int b){return a < b ? a : b;}int minSubArrayLen(int target, vector<int>& nums) {/**思路:1.滑动窗口方法,类似与双指针2.先介绍滑动窗口的三要素滑动窗口的起始位置,窗口的范围大小窗口的结束位置3.在本题中,我们的起始位置是数组的开头,窗口的范围大小是我们累加的和,结束位置是我们的累加和大于target 的元素位置.4.那么滑动窗口的精髓之处在于移动起始位置的指针,当我们统计到一个满足target的时候,我们将sum 剪去 nums[i++] (i是起始位置) ,那么就相当于我们向后移动一个元素**/int minx = 100001;int arraylength = 0;//滑动窗口的长度int sum = 0;//窗口的大小int j = 0;//滑动窗口的起始 位置for(int i = 0; i < nums.size(); i++) {sum += nums[i];while(sum >= target){arraylength = i - j + 1;//这个可以拿例子理解minx = min(minx,arraylength);sum -= nums[j++];//这里体现滑动窗口的精髓之处 我们可以获知这里是移动出窗口的起始位置}}return minx == 100001 ? 0 : minx;}
};

不用猜 暴力解法 一定是菜鸡杰的解法 哈哈哈 菜鸡杰也只会暴力解决一切 但该学习学习还是得学 一看评论区 卧槽 还能这么做 我真菜 菜鸡杰果然是菜鸡 哈哈哈 加油 各位 !!

leetcode209. 长度最小的子数组(暴力+滑动窗口)相关推荐

  1. LeetCode 209. 长度最小的子数组(滑动窗口)

    1. 题目 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组. 如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, num ...

  2. 力扣209,长度最小的子数组(滑动窗口,JavaScript)

    var minSubArrayLen = function(target, nums) {let s=0 //起始位置let i=0 // 滑动指针let sum=0let len=nums.leng ...

  3. LeetCode 209. 长度最小的子数组(双指针+滑动窗口)

    题目描述 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums ...

  4. leetcode209. 长度最小的子数组(滑动窗口)

    一:题目 二:上码 class Solution {public:/**思路:1.滑动窗口解法1>:确定窗口内是什么2>:确定窗口的起始位置3>:确定窗口的终止位置2.窗口:也就是我 ...

  5. LeetCode209 长度最小的子数组(二分法)

    给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, nums ...

  6. leetcode209. 长度最小的子数组 借这个题规范一下双指针写法

    给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums = [2, ...

  7. 209. 长度最小的子数组(中等 数组 滑动窗口)

    209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, -, n ...

  8. 长度最小的子数组(力扣209)

    长度最小的子数组(力扣209) 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, -, ...

  9. 代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II

    LeetCode 977.有序数组的平方 题目链接:977.有序数组的平方 思路: 1.先对每个数进行遍历平方,并插入新的容器中 2.对容器进行排序,返回就可以了 缺陷:开辟了新的容器空间 class ...

最新文章

  1. 会数据分析的人别再低调了,我怕你会因此错失100万奖金
  2. 项目性能优化(MySQL读写分离、MySQL主从同步、Django实现MySQL读写分离)
  3. Qt for Android / ios 将图片或文件打包进安装包中
  4. linux中高并发socket最大连接数的优化详解
  5. 全志A33-gpio驱动程序
  6. pgd 游戏教程 基地
  7. 关于valgrind的安装和内存泄露分析
  8. gcn在图像上的应用_每日摘要|基于CNN 特征的图像卷积网络识别杂草和作物
  9. mysql-dj数据准备-创建班级表
  10. leetcode--Rotate List
  11. SAP License:在LMLCCS_UPDATEF02 LCL_DB 内部错误的解决办法
  12. 【JavaEE Spring】SpringBoot 日志文件详解
  13. Linux学习之安装配置VM虚拟机
  14. 计算机专业创新创业培养,中职计算机专业学生创新创业能力培养思考
  15. html+css 模仿制作百度注册页面
  16. Beautiful Soup:4 kinds of objects
  17. 戴维·萨尔诺夫,霍华德·阿姆斯特朗以及超外差无线接收机
  18. 2021NCTF-RE
  19. Android开发板
  20. 新冠疫情可视化(7月11日,7月12日)

热门文章

  1. 拥抱.NET Core,学习.NET Core的基础知识补遗
  2. 手机的小窗口怎么弄_荣耀9X如何设置桌面小工具?划重点,这个要考
  3. 【专升本计算机】2021年甘肃省专升本计算机全真模拟试题(二)
  4. 通渭县义岗川镇之行(2020年11月19日)
  5. ArcGIS实验教程——实验十二:栅格数据投影变换
  6. 遥感RS植被指数大全整理
  7. Java之new一个对象简单过程
  8. Andorid之BINDSERVICE的使用方法总结
  9. Android面试题总结加强再加强版(三)
  10. 栈和队列之用2个栈实现一个队列