我不知道为什么这样是正确的
int prefectSequence(vector<int>& input) { int left = 0, right = 1; long sum = input[0]; int maxLen = 0; while (right < input.size()) { if (input[right] >= sum) { maxLen = max(maxLen, right - left + 1); sum += input[right]; right++; } else { // 这里就是我搞不懂的地方了 // 我不理解为什么这里双指针滑动窗口的正确的 sum -= input[left]; left++; } } return maxLen; } int main() { int T,n,num; cin >> T; vector<int> input; while (T-- >0) { cin >> n; for (int i = 0; i < n; i++) { cin >> num; input.push_back(num); } cout<<prefectSequence(input) << endl; input.clear(); } return 0; }