座右銘是找到的3或5以下N.減少時間複雜度/優化的解決方案
這裏所有的倍數的總和是我的代碼:
public class Solution
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int t = in.nextInt();
long n=0;
long sum=0;
for(int a0 = 0; a0 < t; a0++)
{
n = in.nextInt();
sum=0;
for(long i=1;i<n;i++)
{
if(i%3==0 || i%5==0)
sum = sum + i;
}
System.out.println(sum);
}
}
}
它採取比1秒更執行一些測試用例。任何人都可以請幫助我,以減少時間複雜性?
O(n)是最好的,你可以得到這個。 – ja08prat
這個問題有一個瑣碎的恆定時間解決方案,O(1)! –
閱讀本文[https://math.stackexchange.com/questions/9259/find-the-sum-of-all-the-multiples-of-3-or-5-below-1000](https://math .stackexchange.com /問題/ 9259 /找到最加總所有最倍數-的-3-或-5-下面-1000)。 –