-1
我在編碼競賽中爲練習題編寫了下面的代碼,但是當我運行它時,我會隨着時間的推移。主要罪魁禍首(我猜)是在O(n^2)中運行的雙重循環。有沒有什麼辦法可以優化這個代碼?我已經嘗試與memoization搞亂,但我無法弄清楚如何做到這一點。在陣列上優化雙重迭代
for (i=n;i>0;i--){
int index = linearSearch(seq,i,n);
int height = bricks[index];
for (j=0;j<n;j++){
if (j != index){
if (bricks[j] >= height){
while(bricks[j]>=height){
bricks[j]--;
count++;
}
if(bricks[j] < 0){
printf("-1\n");
return 0;
}
}
}
}
bricks[index] = 0;
seq[index] = 0;
}
如果這是工作的代碼,你應該把它而不是[codereview](https://codereview.stackexchange.com/)。但是在你做這件事之前**,請確保**寫出你的代碼的一個很好的解釋**,例如**文件**。 –
這段代碼*應該做什麼*? –
快速瀏覽一下,有很多方法可以優化這段代碼... –