所以我正在解決一個編碼挑戰,並且由於超時而導致大量輸入的測試用例失敗。有沒有什麼辦法可以避免在java中嵌套的「for」循環
我需要做一個「計數」次的模擬。 每個模擬將產生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);
}
那麼有什麼辦法可以減少時間複雜度?數據結構可以被改變,它並不是排他的數組。
@Jiri你不喜歡 '嗨'? –
@AdriaanKoster那實際上不是我,看修訂歷史。我不喜歡標題中的額外引號:) –
@TheBakker這會如何幫助? –