gpt4 book ai didi

java - 求和超时如何解决?

转载 作者:行者123 更新时间:2023-12-01 16:55:16 25 4
gpt4 key购买 nike

我正在解决HackerRank(Euler项目,问题1)中的一个非常直接的问题,该问题说要找出低于特定给定数字(n)的所有数字的总和,该数字返回零作为潜水提醒减少 3 或 5 。我写的解决方案如下,

public static int getSum(int n ){

int sum = 0;

for (int j =0; j < n; j++){

if ( j%3 == 0 || j%5 == 0 ){

sum += j;
}
}
return sum;
}

在 2 个测试用例中,此解决方案超时。如何改进代码?

最佳答案

难道就没有其他办法可以解决吗?

如果n10^6,则循环运行10^6次。

我们可以进一步减少这个吗?

还记得艺术进步系列吗?

a、a + n、a + 2n、...

这和问题之间有什么联系吗?

是的,看3倍数还是5倍数。

3, 3 + 3, 3 + 2 * 3....

第n项之前的总和是多少?

5 多重数使用相同的方法。

我不想因为给你完整的答案而破坏解决欧拉计划问题的乐趣。我给了你一个提示。玩得开心!

<小时/>

PS:这有一个转折。仔细观察。

关于java - 求和超时如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33930977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com