209. Minimum Size Subarray Sum
2016-04-23 14:45
323 查看
Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, return
0 instead.
For example, given the array
the subarray
思路:设置一个i和j,初始值都为0,然后j一直往后走,知道sum[i...j]>=s了,然后将i向前走,直到第一个sum[i..j]<s
下面举一个例子
2 3 1 2 4 3
i =0 ,j=0; minlen=Integer.Max_Value
i=0,j=3;minlen=4;
i=1 ,j=3;minlen=4;
i=1,j=4;minlen=4;
i=3,j=4;minlen=3;
i=3;j=5;,minlen=3;
所以minlen=3;
代码如下(已通过leetcode)
public class Solution {
public int minSubArrayLen(int s, int[] nums) {
if(nums==null ||nums.length==0) return 0;
int i=0,j=0;
int sum=nums[0];
int minlen=Integer.MAX_VALUE;
while(i<nums.length&&j<nums.length) {
if(sum<s) {
j++;
if(j>=nums.length) break;
else sum=sum+nums[j];
}
else{
minlen=Math.min(minlen, j-i+1);
//System.out.println(minlen);
sum=sum-nums[i];
i++;
}
}
if(minlen==Integer.MAX_VALUE) return 0;
else return minlen;
}
}
0 instead.
For example, given the array
[2,3,1,2,4,3]and
s = 7,
the subarray
[4,3]has the minimal length under the problem constraint.
思路:设置一个i和j,初始值都为0,然后j一直往后走,知道sum[i...j]>=s了,然后将i向前走,直到第一个sum[i..j]<s
下面举一个例子
2 3 1 2 4 3
i =0 ,j=0; minlen=Integer.Max_Value
i=0,j=3;minlen=4;
i=1 ,j=3;minlen=4;
i=1,j=4;minlen=4;
i=3,j=4;minlen=3;
i=3;j=5;,minlen=3;
所以minlen=3;
代码如下(已通过leetcode)
public class Solution {
public int minSubArrayLen(int s, int[] nums) {
if(nums==null ||nums.length==0) return 0;
int i=0,j=0;
int sum=nums[0];
int minlen=Integer.MAX_VALUE;
while(i<nums.length&&j<nums.length) {
if(sum<s) {
j++;
if(j>=nums.length) break;
else sum=sum+nums[j];
}
else{
minlen=Math.min(minlen, j-i+1);
//System.out.println(minlen);
sum=sum-nums[i];
i++;
}
}
if(minlen==Integer.MAX_VALUE) return 0;
else return minlen;
}
}
相关文章推荐
- java jsp实现网站访问量的统计
- SAR成像基础知识急救箱(零)关于傅里叶变换的几个小困惑
- Android源码分析之——下载并编译源码
- 写出ELGamal公钥密码算法的加密、解密过程
- Docker基础技术:DeviceMapper
- Android之Viewpager+Fragment实现懒加载
- HDU 5670 Machine
- 数据结构—约瑟夫问题
- window server2012 + IIS8.0 + tomcat 集成环境搭建
- ThreadLocal详解
- 1006
- MMORPG游戏设计
- Github安装到windows7的配置说明
- Cron Expression
- Docker基础技术:AUFS
- SecureCRT日志和卷屏行数设置
- RSA公钥密码算法的实现
- Docker基础技术:Linux CGroup
- Docker基础技术:Linux Namespace(下)
- 关于windows下NODE_ENV=test无效的情况解决办法