209. Minimum Size Subarray Sum
来源:互联网 发布:windows找不到文件c 编辑:程序博客网 时间:2024/06/08 00:30
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.
题意:给一个数组和值s,求数组里连续子序列和>=s,并使得这个连续子序列长度最小。
思想:由于是连续的子序列 可以定义2个指针start,end,tempsum为数组[start....end]之和的值,min为所有tempsum>=s的最小值
移动end或start指针
若数组[start....end]之和<s 那么指针end++;
若数组[start....end]之和>s 判断min是否是最小值 然后指针start++;
找到tempsum>=s时的最小值min
C++ AC代码:Time O(n) Space O(1) 这次有些判断不到位,导致代码复杂度比较高,还需加强训练!!!
class Solution {public: int minSubArrayLen(int s, vector<int>& nums) { int len = nums.size(); if(len<=0) return 0; int min = len; int b = 0; int e = 0; int tempsum = nums[0]; while(b<=e&&e<len){ if(e==b&&nums[e]>=s) return 1; else if(e==b&&nums[e]<s){ e++; tempsum +=nums[e]; } else if(e!=b&&tempsum>=s){ min = min<(e-b+1)?min:(e-b+1);if(e==len-1&&tempsum-nums[b]<s)break; tempsum-=nums[b]; b++; }else if(e!=b&&tempsum<s){ e++;if(e==len)break; tempsum +=nums[e]; } } min = (tempsum>=s||min!=len)?min:0; return min; }};
阅读全文
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
- 抓取html页面中的json数据
- TabLayout的TabItem自定义
- Centos7 安装Qt
- Python 3从入门到精通2-打印语句
- NoSuchMethodError org slf4j helpers MessageFormatter format
- 209. Minimum Size Subarray Sum
- 微信模板推送-详情页跳转
- @JsonBackReference
- Java反射机制详解
- NDK入门:Android.mk的制作
- UML中的聚合、组合、依赖
- struts2 中的 addActionError 、addFieldError、addActionMessage的方法【转】
- 判断数组是否相等
- Android下网络通信接口