C++ 最长可被7整除的区间长度
#include
int main() {
int n;
cin >> n;
vector
unordered_map<int, int> mp{{0, -1}}; // 前缀和为0的初始位置为-1
int sum = 0, res = 0;
for (int i = 0; i < n; i++) {
sum = (sum + nums[i]) % 7;
if (mp.count(sum)) { // 如果之前出现过该前缀和,则计算区间长度
res = max(res, i - mp[sum]);
} else {
mp[sum] = i; // 记录该前缀和出现的位置
}
}
cout << res << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/oxOs 著作权归作者所有。请勿转载和采集!