https://leetcode-cn.com/problems/minimum-size-subarray-sum/submissions/
@代码随想录
1.暴力解法

class Solution {public static int minSubArrayLen(int target, int[] nums) {//暴力解法:从每一个数开始直到和》target为止,并记录下这个数//求数组长度 num.length//求字符串长度 s.length()int length = nums.length;int[] result = new int[length];for(int i = 0; i < length ; i++){int sum = 0;for(int j = i; j < length; j++){sum += nums[j];if(sum >= target){result[i] = j - i + 1;break;}}}//单独判断最后一个数字if(nums[length - 1] < target){result[length - 1] = length + 1;}int min = result[length - 1];for(int k = 0; k < length; k++){//System.out.print(result[k] + " ");//System.out.print(" ----- ");if(result[k] == 0){result[k] = length + 1;}//System.out.print(result[k] + " ");if(result[k] < min){min = result[k];}}if(min == length + 1){return 0;}return min;}//此方法优化:不需要新建立数组再一个个比较,直接定最小值然后不断更新最小值,如果最小值一直是0,那么就返回0
}

注意:

求数组的长度 num.length

求字符串的长度 s.length()

滑动窗口

在本题中实现滑动窗口,主要确定如下三点:

  • 窗口内是什么?
  • 如何移动窗口的起始位置?
  • 如何移动窗口的结束位置?

窗口就是 满足其和 ≥ s 的长度最小的 连续子数组。

窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动了(也就是该缩小了)。

窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,窗口的起始位置设置为数组的起始位置就可以了。

解题的关键在于 窗口的起始位置如何移动。

class Solution {public static int minSubArrayLen(int target, int[] nums) {//result的初始值为一个不可能的值int result = nums.length + 1;int left = 0;int length = nums.length;int sum = 0;for(int right = 0;right < length; right++){//向右滑动sum += nums[right];while(sum >= target){result = Math.min(result, right - left + 1);sum -= nums[left++];//向左滑动}}return result == nums.length + 1 ? 0 : result;}}

LeetCode——209.长度最小的子数组相关推荐

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

    LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...

  2. LeetCode—209. 长度最小的子数组

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

  3. leetcode —— 209. 长度最小的子数组

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

  4. leetcode 209.长度最小的子数组

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

  5. LeetCode 209. 长度最小的子数组

    思路: 评论区的大佬太强了,搬运. len 表示 结果:j表示此片段的最左索引:sum表示片段和 先遍历,逐个递加,直到大于s 时,再去缩短长度. public int minSubArrayLen( ...

  6. [leetcode]209. 长度最小的子数组

    暴力: class Solution {public:int minSubArrayLen(int s, vector<int>& nums) {bool flag = false ...

  7. 【Leetcode数组--子数组--滑动窗口】209. 长度最小的子数组 904. 水果成篮 1004. 最大连续1的个数 III 76. 最小覆盖子串(有数组操作中重要的方法:滑动窗口!!!!)

    文章目录 Leetcode209 1.问题描述 2.解决方案 解法一:两个错误思路的算法 解法二:暴力 解法三:滑动窗口法(O(n)) Leetcode904 1.问题描述 2.解决方案 Leetco ...

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

    第一章数组 (今日任务) 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结 建议大家先独立做题,然后看视频讲解,然后看文章讲解,然后在重新做一遍题,把题目AC,最后整理 ...

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

    代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II 一. LeetCode977.有序数组的平方 1. 题目链接[LeetCode9 ...

最新文章

  1. Android开发环境——Eclipse ADT相关内容汇总
  2. python免费入门手册-Python 基础入门教程
  3. ai包装插件_找AI插件很费劲,一次给你66款AI插件合集!每一款都是设计师常用...
  4. DS1302——51
  5. Net分布式系统之:微服务架构
  6. stream流把list转为map
  7. algorand共识协议_【Filecoin】理解预期共识 - 及它的优缺点
  8. 1106. Lowest Price in Supply Chain (25)-PAT甲级真题(dfs,bfs,树的遍历)
  9. Ulipad安装失败解决办法
  10. 大数据面试题及答案-汇总版
  11. 网络攻防技术——SQL注入
  12. opencontrail 2.20
  13. 一文读懂卷积神经网络中的1x1卷积核
  14. c++除法保留小数_小学数学整数和小数的应用题解答方法公式汇总,新学期必备...
  15. 公众号 多服务器配置_公众号发布的文章越多,涨粉越多吗?
  16. [转] 晚上一般什么时候睡觉?
  17. 信捷plc c 语言全局变量,三菱PLC编程中,跳转指令CJ、子程序调用CALL和中断指令有什么区别?...
  18. linux raid 找回文件,linux – 恢复已经在降级模式下运行的RAID-5(丢失了第二个磁盘)...
  19. 九度OJ北京航空航天大学2008机试题题解
  20. Linux环境中对海康威视工业相机SDK进行二次开发(QT+CMake+Opencv+海康SDK)

热门文章

  1. MPAndroidChart的详细使用——BarChart条形图(一)
  2. 【剑桥摄影协会】软校样(Soft Proof):照片在屏幕显示与打印之间的效果匹配
  3. mysql的事务内常用锁
  4. 遥感图像融合(一)——遥感图像的相关概念
  5. 例9003 火星上的加法
  6. DVWA-WooYun SQL Injection
  7. 科技改变世界之春节篇
  8. Python “贪吃蛇”魔改大赛,码出你的 Style
  9. 项目管理师——2015-2017错题汇总
  10. 最新NLP论文解析--附RetroXpert复现教程