结论:最小公倍数lcm(x,y)=x*y/gcd(x,y)
暴力枚举即可。
class Solution {
public:
int get(int x,int y){
return x*y/__gcd(x,y);
}
int subarrayLCM(vector<int>& a, int k) {
int ans=0;
int n=a.size();
for(int i=0;i<n;i++){
int g=a[i];
for(int j=i;j<n;j++){
g=get(g,a[j]);
if(g==k) ans++;
if(g>k) break;
}
}
return ans;
}
};
时间复杂度:O()
空间复杂度:O(1)
该博客介绍了一个使用暴力枚举方法来计算整数数组中连续子数组的最小公倍数的问题。代码实现中,通过计算两数最大公约数gcd并乘以它们的乘积得到最小公倍数lcm。算法的时间复杂度为O(n^2),空间复杂度为O(1)。博客内容主要涉及算法设计和数学原理在编程中的应用。
550

被折叠的 条评论
为什么被折叠?



