Sherlock和Queries - 时间复杂性

时间:2014-11-07 15:08:36

标签: java time-complexity

问题: https://www.hackerrank.com/challenges/sherlock-and-queries

我的解决方案:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    int N,M;
    long div = 1000000007;
    N=sc.nextInt();
    M=sc.nextInt();
    long[] A=new long[N];
    int[] B=new int[M];
    int[] C=new int[M];
    for(int i=0;i<N;i++)
    {
        A[i]=sc.nextInt();
    }
    for(int i=0;i<M;i++)
    {
        B[i]=sc.nextInt();
    }
    for(int i=0;i<M;i++)
    {
        C[i]=sc.nextInt();
    }

    for(int i=0;i<M;i++)
    {

        for(int j=B[i]-1;j<N;j+=B[i])
        {          
                  if((j+1)%B[i]==0)
                   {
                        A[j] = ((A[j] * C[i]));
                        if(div<A[j])
                          A[j]=A[j]%div;
                   }
         }

    }  
    for(int i=0;i<N;i++)
        System.out.print(A[i]+" ");
    } }

它为小输入提供输出。但是对于较大的值它会不断给出“由于超时而终止”。 我努力了,无法解决这个问题。 关于减少时间复杂度的任何想法? 谢谢!!!

0 个答案:

没有答案