Leetcode 209. 长度最小的子数组
没错,时隔多年我又更新了。
这是一期leetcode刷题随笔。应该是人生第一道medium,先上代码:
class Solution {
public:
int minSubArrayLen(int target, vector<int>& nums) {
int sum = 0;
int i = 0;
int len = INT32_MAX;
for(int j = 0; j < nums.size(); j++)
{
if(sum < target)
{
sum += nums[j];
}
while(sum >= target)
{
int sublen = j - i + 1;
len = sublen < len ? sublen : len;
sum -= nums[i++];
}
}
return len == INT32_MAX ? 0 : len;
}
};
与代码随想录的题解基本一致。唯一不同的地方也是想发博客与大家分享的。
虽然逻辑上加不加sum < target这一语句这道题都能过,但是我发现加了以后代码运行速度反而提高了很多!应该是因为比较语句比内存读写要快很多,感觉408的一切又回来了哈哈哈哈。
代码行数跟运行效率并不是完全正比的关系。
还有? :这个三元运算符确实爽,一句顶好几句。
虽然最近并不是所有事情都顺心,不过至少可以戴着镣铐跳舞!