lintcode-medium-Minimum Size Subarray Sum
2016-03-31 17:18
155 查看
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 -1 instead.
Example
Given the array
Challenge
If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log n).
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.
Challenge
If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log n).
public class Solution { /** * @param nums: an array of integers * @param s: an integer * @return: an integer representing the minimum size of subarray */ public int minimumSize(int[] nums, int s) { // write your code here if(nums == null || nums.length == 0) return -1; int fast = 0; int slow = 0; int sum = 0; int result = Integer.MAX_VALUE; int size = nums.length; for(int i = 0; i < size; i++) sum += nums[i]; if(sum < s) return -1; sum = 0; while(fast < size){ while(fast < size && sum < s){ sum += nums[fast]; fast++; } //result = Math.min(result, fast - slow + 1); while(slow < size && sum >= s){ sum -= nums[slow]; slow++; } result = Math.min(result, fast - slow + 1); } return result; } }
相关文章推荐
- js获取时间
- Android设计模式 单例模式(Double CheckLock模式)
- Nginx LOGGING AND MONITORING
- Android中的Bluetooth详解
- 记·阿里巴巴面试
- 改进更新 数字排序
- 改进更新 数字排序
- 棒棒哒
- JAVA多线程实现的三种方式
- Android对LinearLayout进行设置View.GONE可是里面的自控件还是会显示
- C语言字符型数据(二)— 汉字的读写
- 电气一班 宋家欢 VB中用循环程序任意生成10个数
- 常用正则表达式
- 如何正确遍历删除List中的元素
- Windows下玩转Redis入门(一)
- IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、@synthesize、@property、@dyna
- Python中使用中文导致的编码问题
- 随机生成N个数,并从大到小排序。。。。。。。
- 希尔顿宾馆里的排序问题^_^
- c语言与vb