码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 209. Minimum Size Subarray Sum

时间:2017-05-06 14:10:07      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:code   color   ret   div   sub   tar   最小   cto   vector   

 https://leetcode.com/problems/minimum-size-subarray-sum/#/description

题目很简单。题意就是求字符串中长度最小的一个子串(子串和大于等于s)

      其实感觉直接暴力也可以写,但题目有提示用两个指针,感觉两个指针写,更飘逸一些。

      一个end指针一直右移,直到temp+=num[end++],temp大于等于s,然后移动start指针,直到temp-=num[start++]小于s,然后求end和start之差,整个循环在end>=len时结束。稍微注意一下整个字符串小于s的情况。

      思路很简单,只是我一开始看到双指针解题,一开始想到的就是left,right往中间跑,感觉前面很多都是left,right的形式,思维有些江化。暴力膜。所以一开始进了误区。

      

 1 class Solution {
 2 public:
 3     int minSubArrayLen(int s, vector<int>& nums) {
 4         int start=0,end=0;
 5         int len=nums.size();
 6         int res=len+1;
 7         int temp=0;
 8         while(end<len){
 9             while(end<len&&temp<s)
10                 temp+=nums[end++];
11             while(start<end&&temp>=s)
12                 temp-=nums[start++];
13             res=min(res,end-start+1);
14         }
15         return res==len+1?0:res;
16     }
17 };

 

leetcode 209. Minimum Size Subarray Sum

标签:code   color   ret   div   sub   tar   最小   cto   vector   

原文地址:http://www.cnblogs.com/weedboy/p/6816468.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!