数组|leetcode209.长度最小的子数组
给定一个含有 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
提示:
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 105
进阶:
如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
暴力遍历
class Solution {public int minSubArrayLen(int target, int[] nums) {int min = Integer.MAX_VALUE;int sum = 0; //子序列数值之和for (int i = 0; i < nums.length;i++){sum = 0;for(int j = i;j < nums.length;j++){sum+=nums[j];if(sum >= target){int len = j - i + 1 ; //子序列长度min = len < min ? len : min;//取较短的长度break;} }}//如果没有找到min还依然等于最初赋值return min == Integer.MAX_VALUE ? 0 : min;}
}
时间复杂度O(n^2)
空间复杂度O(1)
双指针(滑动窗口)
class Solution {public int minSubArrayLen(int target, int[] nums) {int min = Integer.MAX_VALUE;int i = 0, j = 0,sum = 0;for(j = 0 ; j < nums.length; j++){sum += nums[j];while(sum >= target){int len = j - i + 1;min = len < min ? len : min;sum -= nums[i++];}}return min == Integer.MAX_VALUE ? 0 : min;}
}
数组|leetcode209.长度最小的子数组相关推荐
- 代码随想录第二天 |LeetCode977.有序数组的平方,LeetCode209.长度最小的子数组,LeetCode59.螺旋矩阵II
LeetCode977.有序数组的平方 977. 有序数组的平方 - 力扣(LeetCode) 暴力解法: 一开始不习惯用双指针解法,习惯性先平方再用双指针,发现做不出了HH.于是愉快的用传统暴力解法 ...
- 1、leetcode209 长度最小的子数组
leetcode209 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+ ...
- 代码随想录Day02 | LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵II
977.有序数组的平方 力扣题目链接(opens new window) 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 示例 1: ...
- 代码随想录算法训练营第二天|LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵II。
LeetCode977.有序数组的平方 题目链接:LeetCode977.有序数组的平方 暴力解法: class Solution { public:vector<int> sortedS ...
- Leetcode--209. 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums = [2, ...
- 代码随想录算法训练营第二天|LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵Ⅱ
算法训练营打卡第二天,今天的前两道题目重点练习了双指针的用法,最后一道题目将边界条件的限定作为关键点,额外锻炼了逻辑能力. LeetCode977.有序数组的平方 题目链接 https://leetc ...
- 代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II
代码随想录算法训练营第二天 | LeetCode977.有序数组的平方 ,209.长度最小的子数组,59.螺旋矩阵II 一. LeetCode977.有序数组的平方 1. 题目链接[LeetCode9 ...
- 【Leetcode数组--子数组--滑动窗口】209. 长度最小的子数组 904. 水果成篮 1004. 最大连续1的个数 III 76. 最小覆盖子串(有数组操作中重要的方法:滑动窗口!!!!)
文章目录 Leetcode209 1.问题描述 2.解决方案 解法一:两个错误思路的算法 解法二:暴力 解法三:滑动窗口法(O(n)) Leetcode904 1.问题描述 2.解决方案 Leetco ...
- 209. Minimum Size Subarray Sum 长度最小的子数组
Title 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的连续子数组,返回 0. **示例: ** 输入: ...
最新文章
- python 申请内存空间、用于创建多维数组_python 申请内存空间,用于创建多维数组的实例...
- 2008php多版本共存,lnmp安装多版本PHP共存的方法详解
- 视频导切台控制说明:RGBLink MiniPro初步测试
- axure9 邮件点击效果_EDM邮件营销,你不得不知道的8个指标?
- 数字语音信号处理学习笔记——绪论(1)
- shell编程 之 test命令
- 案例实现jquery.cookie的操作
- CSS 语言伪类选择器
- 一个简单的txt读取与导出
- Ubuntu16.04系统 GPU1070Ti下搭建Caffe++Nvidia显卡驱动+Cuda9.0+Cudnn7.0.5
- 防止跨站攻击——CSRFToken
- 正宇丨人生哪有事事如意,生活哪有样样顺心
- Scipy 学习 第1篇:插补
- VS没有CUDA模块问题
- 2023校招荣耀笔试
- 码学堂P1686 Hello, World!题解
- 怎样借助Python爬虫给宝宝起个好名字--python 学习
- C语言连续自动自加怎么表示,为什么不建议在C语言中连续使用自增自减运算符...
- AdminLTE2 框架的使用
- 汇编语言课后习题答案(王爽)
热门文章
- 时间序列与R语言应用(part5)--移动平均MA模型及其可逆性
- 什么是 SAP SUP - Sybase Unwired Platform
- 关于 jMeter 结果报表里的 APDEX (Application Performance Index)
- fixture.detectChange开始单步调试,如何执行到Directive的ngOnChange钩子
- css flex属性学习笔记
- SAP Spartacus Header区域的渲染逻辑
- SAP Authenticator apk下载
- 使用SAP Cloud for Customer Product OData服务读取产品主数据和其图片信息
- ABAP和Go语言的初始化操作, Kubernetes的Init Container
- Netweaver的端口号和Spring boot内嵌的Tomcat端口