许诺 • 28天前
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
int findMinSubsequenceLength(int N, int S, vector& nums) {
int left = 0;
int sum = 0;
int min_length = INT_MAX;
for (int right = 0; right < N; ++right) {
sum += nums[right];
while (sum >= S) {
min_length = min(min_length, right - left + 1);
sum -= nums[left];
left++;
}
}
return (min_length != INT_MAX) ? min_length : 0;
}
int main() {
int T;
cin >> T;
while (T--) {
int N, S;
cin >> N >> S;
vector<int> nums(N);
for (int i = 0; i < N; ++i) {
cin >> nums[i];
}
cout << findMinSubsequenceLength(N, S, nums) << endl;
}
return 0;
}
评论:
请先登录,才能进行评论