目录
- 一、题目解析
- 二、算法原理
- 三、代码实现
一、题目解析
二、算法原理
注意点:
三、代码实现
我自己写的代码(我的评价是很挫)
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int left = 0, right = -1, ret = INT_MAX;int sum = 0;while (right<(int)nums.size()){if (sum >= target){sum -= nums[left];ret = min(ret, right - left + 1);left++;}else{if (right == nums.size() - 1){break;}sum += nums[++right];}}return ret==INT_MAX?0:ret;}
};
别人的代码(我的评价是写的很清楚,控制的很好)
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int ret=INT_MAX,sum=0;for(int left=0,right=0;right<(int)nums.size();right++){sum+=nums[right];while(sum>=target){//跟新结果ret=min(ret,right-left+1);//滑动窗口sum-=nums[left];left++;}}return ret==INT_MAX?0:ret;}
};