我的第一次代码
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
int minSubArrayLen(int s, vector<int>& nums) {
if(nums.size()==0)
return 0;
int sum[nums.size()+1];
sum[0]=0;
sum[1]=nums[0];
for(int i=2;i<=nums.size();i++)
sum[i]=sum[i-1]+nums[i-1];
int min=10000000;
for(int i=0;i<=nums.size();i++)
for(int j=i+1;j<=nums.size();j++)
{
if(sum[j]-sum[i]>=s)
{
min= j-i>min? min:j-i;
}
}
if(min==10000000)
return 0;
return min;
}
};
1003ms
第二次代码
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
int minSubArrayLen(int s, vector<int>& nums) {
if(nums.size()==0)
return 0;
int min=10000000;
for(int i=0;i<=nums.size()-1;i++)
{
int sum=0;
for(int j=i;j<=nums.size()-1;j++)
{
sum+=nums[j];
if(sum>=s)
min=min<j-i+1? min:j-i+1;
}
}
if(min==10000000)
return 0;
return min;
}
};
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
int minSubArrayLen(int s, vector<int>& nums) {
if(nums.size()==0)
return 0;
int min=10000000;
for(int i=0;i<=nums.size()-1;i++)
{
int sum=0;
for(int j=i;j<=nums.size()-1;j++)
{
sum+=nums[j];
if(sum>=s)
{ min=min<j-i+1? min:j-i+1;break;}
}
}
if(min==10000000)
return 0;
return min;
}
};
199ms 区别就是加了一个break