209. Minimum Size Subarray Sum
来源:互联网 发布:关于网络舆论的法律 编辑:程序博客网 时间:2024/06/06 19:04
Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn’t one, return 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.
我的解法:
1、O(nlogn)
思路:应该算是暴力解法了, 直接从数组nums[0]为起始点开始遍历,若以0为起始点没有符合条件的子序列,就从nums[1]开始找,然后2、3、4……
public class Solution { public int minSubArrayLen(int s, int[] nums) { int sum = 0; int tempLen = 0; int minLen = 0; int machTime = 0; if(nums.length == 0) { return 0; } for(int i = 0 ;i<nums.length;i++) { sum = 0; tempLen = 0; for(int j = i; j < nums.length; j++) { sum += nums[j]; if (sum < s) { tempLen++; } else { machTime++; tempLen++; if(machTime == 1) { minLen = tempLen; } minLen = tempLen<minLen ? tempLen : minLen; break; } } } return minLen; }}
解法二:two pointer O(n)
思路:有int start = 0和int end = 0两个指针。不断地先向右移动end后移动start,来获取满足条件的最小的子序列
public class Solution { public int minSubArrayLen(int s, int[] nums) { int start = 0 ,end = 0; int sum = 0; int minLen = 0; int machTime = 0; for(end = 0;end < nums.length;end++) { sum = sum + nums[end]; while(start <= end) { if(sum >= s) { if(machTime == 0) { minLen = end - start + 1; } minLen = (end - start + 1) < minLen? (end - start + 1) : minLen; sum = sum - nums[start]; start++; machTime++; } else { break; } } } return minLen; }}
0 0
- 209.Minimum Size Subarray Sum
- 209.Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 第2章Java语言基础
- 关于js的callback回调函数以及嵌套回调函数的执行过程理解
- 运行sosreport导致OL7.3操作系统crash
- 使用IDEA创建Struts项目
- 153. Find Minimum in Rotated Sorted Array
- 209. Minimum Size Subarray Sum
- html,css简单仿站之建材网
- JAVA高精度1_大数相加_阶乘
- 重心-[Codeforces709E] Centroids
- linux文件系统
- Nginx源码阅读(ngx_pool_t)
- 基于环信的仿QQ即时通讯的简单实现
- boolan——c++学习笔记之内存分配
- memory_target指定的值过小