leetcode 209. Minimum Size Subarray Sum
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 209. Minimum Size Subarray Sum相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode 209: Minimum Size Subarray Sum
leetcode 209. Minimum Size Subarray Sum
刷题-LeetCode209. Minimum Size Subarray Sum
LeetCode-209.Minimum Size Subarray Sum