#include <iostream> #include <vector> #include <algorithm> #define INF 32767; using namespace std ; int Sum(vector<int>& nums, int i, int j) { int sum = 0; for(int m = i; m <=j; m++) { sum += nums[m]; } return sum; } int main() { cout << "请输入数组长度" <<endl; vector<int> nums; int n; cin >> n; cout << "请输入n个数字" <<endl; int a; for(int i = 0; i < n; i++) { cin >> a; nums.push_back(a); } cout << "请输入target" << endl; int target; cin >> target; int i = 0; int j = 0; int min = INF; int left; int right; while(j < n) { int sum = Sum(nums, i, j);
if(sum < target) { j++; }else { if(j - i + 1 < min) { min = j - i + 1; left = i; right = j; } i++; } } cout << "子数组["; for(int k = left; k <= right; k++) { cout << nums[k] << ','; } cout << ']'; }