class Solution {
public:
int minSubArrayLen(int target, vector& nums) {
// start指向子数组开头,end指向组数组结尾的下一个
int start = 0, end = 0;
int len = nums.size();
// minLen指最小长度,sum=子数组的和
int minLen = 0, sum = 0;
// 当子数组中有元素时
while (start <= end)
{
// 如果和target,记录下现在子数组的长度,并开始新一轮子数组计算,start++
else
{
int currentLen = end - start;
if (minLen == 0)
{
minLen = currentLen;
}
else if (minLen > currentLen)
{
minLen = currentLen;
}
sum -= nums[start];
start++;
}
}
return minLen;
}
};
题目链接:904. 水果成篮 - 力扣(LeetCode)
看了一下别人的答案,发现同样的思路我比人家代码量多一倍,既不熟悉API又啰嗦
class Solution {
public:
// 按理说,用注释里的代码代替下一行是一样的,但是不行
// 我这虽然写出来了但是估计路绕大了
int totalFruit(vector& fruits) {
// 几个篮子装水果
int typeNum=0;
// 两个篮子
int type1 = 0, type2 = 0;
int start = 0, end = 0;
// 存放收集水果的最大数目
int maxLen = 0;
// 存放当前收集水果的数目
int currentLen = 0;
int len = fruits.size();
// 当水果树未完全遍历完毕
while (end maxLen)
{
maxLen = currentLen;
}
}
return maxLen;
}
};
题目链接:76. 最小覆盖子串 - 力扣(LeetCode)
先放个链接,后期学了哈希表再来
怎么说呢,一个月前还用过unordered_map现在忘得一干二净



