209. Minimum Size Subarray Sum
2016-07-22 03:32
225 查看
1. Two pointer
runner只走一遍,每次往前走一格,如果walker可以往前缩就一直缩到依旧满足条件的最远的位置。
最后不要忘了检查有没有满足条件的,如果没有就返回0
所以时间复杂度是O(n)
2. NlogN方法
runner只走一遍,每次往前走一格,如果walker可以往前缩就一直缩到依旧满足条件的最远的位置。
最后不要忘了检查有没有满足条件的,如果没有就返回0
public int minSubArrayLen(int s, int[] nums) { if(nums.length == 0) { return 0; } int walker = 0; int runner = 0; int curSum = 0; int minLen = Integer.MAX_VALUE; while(runner < nums.length) { curSum += nums[runner]; runner++; while(curSum - nums[walker] >= s) { curSum -= nums[walker]; walker++; } if(curSum >= s) { minLen = Math.min(minLen, runner - walker); } } return minLen == Integer.MAX_VALUE? 0: minLen; }
所以时间复杂度是O(n)
2. NlogN方法
相关文章推荐
- Visual Studio 2012 trial version
- 树状数组
- LeetCode--No.235--Lowest Common Ancestor of a Binary Search Tree
- Codeforces Round #325 (Div. 2)ABC
- LeetCode--No.110--Balanced Binary Tree--待完善
- 二分查找
- GNUPLOT linespoints and save as pdf
- OSG3.4.0+VS2013编译与设置
- Android插件化
- Devstack单节点环境实战配置
- [Angular 2] ROUTING IN ANGULAR 2 REVISITED
- 所有数位相加
- Android开发方法数超过65535的解决办法
- 风雨20年:我所积累的20条编程经验
- python之路 线程、进程、协程、队列、python-memcache、python-redis
- 关于freeMarker得到list长度的问题
- Java新手入门必须掌握的30个基本概念
- Java新手入门必须掌握的30个基本概念
- vmem驱动设备
- iptables 总结