leetcode2875. 无限数组的最短子数组(有个long long的老问题要注意)
原文链接:https://www.cnblogs.com/Time25/p/19674281.html
原题
(https://leetcode.cn/problems/minimum-size-subarray-in-infinite-array/)
原题代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 class Solution {
public:
int minSizeSubarray(vector<int>& nums, int target) {
int n=nums.size(),ans=INT_MAX,left=0;
long long s=0;
long long total=accumulate(nums.begin(),nums.end(),0LL);//这里0也要加long long,不然还是以整数的类型相加的,在本题会数据溢出
long long res=target%total;
for(int i=0;i<2*n;i++){
s+=nums[i%n];
while(s>res){
s-=nums[left%n];
left++;
}
if(s==res){
ans=min(ans,i-left+1);
}
}
return (ans==INT_MAX?-1:ans+target/total*n);
}
};
解释
// TRAINING LOG · 第 13 / 76 篇训练记录 · 成文于 2026.03.05 · 傍晚 17:25
本文是原创文章,采用CC BY-NC-SA 4.0许可协议,完整转载请注明来自FMAN720 / ALGO LOG

