-3
我想要相同的結果,更少的執行時間。有沒有更好的方法來編寫代碼,以便在最短的執行時間內獲得相同的結果。更好的方法來寫這個程序,以便它消耗最少的時間來執行
<?php
$input1 = 5;
$input2 = 1;
$input3 = [9, 5, 10];
$numberOfWalls = count($input3);
$numberOfJumps = 0;
for($i=0; $i<$numberOfWalls; $i++){
if($input1 >= $input3[$i]){
$numberOfJumps += 1;
}else {
$tot = 0;
while(1){
if($tot + $input1 < $input3[$i]){
$tot = $tot + ($input1 - $input2);
$numberOfJumps += 1;
}else{
$tot = $tot + $input1;
$numberOfJumps += 1;
break;
}
}
}
}
echo $numberOfJumps;
如果我們重寫代碼,我們將至少必須知道它的目的了。輸入和輸出應該是什麼,它做了什麼,爲什麼。它也很高興知道爲什麼現在需要很長時間,以及您尋求什麼樣的時間縮短。大多數時候最好的建議是:購買更快的電腦。 –
這個程序是在編碼比賽中給出的。在這個$ input3中是一個包含牆壁高度的數組。輸入1是猴子可以跳躍和輸入的高度2是當他不能穿過牆壁時他滑倒的高度。我寫了這個程序,我得分100/100,但執行時間是0.94秒,最好的結果是0.14秒。我很好奇,怎樣才能以最短的執行時間編寫這個程序。 –
顯然,最好的方法是不循環,但是要以數學方式解決這個小難題。一次跳躍是'$ input1 - $ input2'高,所以你可以計算需要跳過多少跳才能穿過牆。 PS:我不會給你100/100的分數。你我找到解決方案的方式同樣重要。 –