给出一个大小为N的整数数组A.您将得到Q查询,其中每个查询由两个整数L,R表示。您必须找到gcd(最大公约数)不包括部分从范围左至右包容性的后阵列
数组的GCD
我的方法:
public static int gcd(int a ,int b) {
if(b == 0) return a;
return gcd(b, a % b);
}
for(int j = 0; j < Q; j++) {
int l = in.nextInt();
int r = in.nextInt();
ans = 0;
for(int k = 1; k <= n; k++) {
if(k < l || k > r) ans = gcd(a[k], ans);
}
System.out.println(ans);
}
但这种做法给我时间超出限制的错误,我怎样才能提高我的alogrithm
gcd从哪里来? – ChiefTwoPencils
@ChiefTwoPencils已更新 – user162091
你有没有想过把它分解成两个; 'k = 0 ...
ChiefTwoPencils