leetcode2875. 无限数组的最短子数组(有个long long的老问题要注意)
原题
(https://leetcode.cn/problems/minimum-size-subarray-in-infinite-array/)
原题代码
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);
}
};


浙公网安备 33010602011771号