class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int n=nums.size();int left,right=0;int len=INT_MAX;int sum=0;while(right<n){sum+=nums[right++];while(sum>=target){sum-=nums[left++];len=min(len,right-left+1);}}return len==INT_MAX?0:len;}
};
这段代码是一个滑动窗口的题。
滑动窗口
https://leetcode.cn/problems/minimum-size-subarray-sum/


这里总结了一下,一般出现这一堆东西都是要么是数组越界,要么就是地址错误。
这里就是left没有被正确初始化。
这可能就是导致错误的原因。比如,当第一次进入内部的while循环时,sum已经足够大,这时候left的值可能是一个很大的数,导致数组访问越界,或者在sum -= nums[left++]的时候出现负数索引或者超过数组长度的索引,从而引发运行时错误,比如段错误或者访问越界异常。

改过来就正常了。
