有没有办法避免在java

时间:2017-02-06 13:44:02

标签: java data-structures nested-loops

所以我正在解决编码挑战,我的代码在由于超时而导致大量输入的测试用例中失败。

我需要模拟“计数”次。 每个模拟将产生0到364个“大小”次的随机数 如果两个数字存储在同一个索引中,那么每个数字都应该被存储和计数,这意味着计数是'2'然后命中++ 返回与“计数”相关的命中百分比

public double calculate(int size, int count) {
        // TODO -- add your code here
        int Hits=0;
        for(int j=1;j<=count;j++) {        // number of simulation 

            int BirthDays[]=new int[365];
            Random rnd = new Random();
            rnd.setSeed(j);

            for(int i=0;i<size;i++){      //number of people  
                int x=rnd.nextInt(365);
                BirthDays[x]=BirthDays[x]+1;
                if(BirthDays[x]>=2){
                    Hits++;
                    break;
                }
            }

        }
        return(((float)Hits/count)*100);

    }

那么有什么方法可以减少时间复杂度? 数据结构可以改变,它不是数组所独有的。

1 个答案:

答案 0 :(得分:0)

我立即看到的最大节省时间是将if switch? TRUE [ask patches[set pcolor [color] of closest-turtle]] 移出循环。您不需要每次都创建一个新实例,而且速度很慢。

Random rnd = new Random()
相关问题