class Solution {
public:
int minSubArrayLen(int s,vector<int>& nums){
int result = INT32_MAX;// 最终的结果
/*int result = INT32_MAX;
result的变量初始化为32位有符号整数能够表示的最大值。
这个值通常用于初始化变量,以便在比较或计算中使用,表示一个理论上的最大限制。*/
int sum = 0;//滑动窗口数值之和
int i=0;//滑动窗口起始位置
int subLength = 0;//滑动窗口的长度
for(int j = 0;j<nums.size();j++){
sum+=nums[j];// // 注意这里使用while,每次更新 i(起始位置),并不断比较子序列是否符合条件
while(sum>=s){
subLength = (j - i + 1); // 取子序列的长度
result = result < subLength ? result : subLength;
sum -= nums[i++];// 这里体现出滑动窗口的精髓之处,不断变更i(子序列的起始位置)
}
}
return result == INT32_MAX ? 0: result; // 如果result没有被赋值的话,就返回0,说明没有符合条件的子序列
}
};
[代码随想录05]
最新推荐文章于 2024-07-19 22:36:19 发布