2016-06-09 43 views
-4

我在www.hackerrank.com挑戰服務巷道https://www.hackerrank.com/challenges/service-lane。我非常仔細地檢查了我的代碼,但在某些情況下仍然是錯誤的。這裏是我的代碼(在Javascript)我的Hackerrank挑戰服務巷道代碼不起作用

function main() { 
    var n_temp = readLine().split(' '), i, s; 
    width = readLine().split(' '); 
    for(var a0 = 0; a0 < n_temp[1]; a0++){ 
     var i_temp = readLine().split(' '); s = 3; 
     for (i=i_temp[0];i<=i_temp[1];i++) {s = Math.min(s,width[i]); if (s == 1) break;} 
     console.log(s); 
    } 
} 

的挑戰有號碼的列表(存儲在寬度,它們的值是1和3之間)和一些測試案例(包括起始號碼:i_temp [0]和結尾數字:i_temp [1。],兩者都包含在內)。任務是從i_temp [0]i_temp [1。]寬度中得到最小數字。
這是一個不起作用的案例:
Input
Output
代碼有什麼問題?它在某些情況下可以成功運行。感謝您的幫助:d

+2

有什麼情況下它不起作用?你在控制檯遇到什麼錯誤? –

+0

我不知道。該網站只顯示我的輸入和輸出。它沒有顯示我預期的輸出。沒有錯誤。 –

+1

'這段代碼有什麼問題?'我們不知道它的用途,那是錯誤的。 –

回答

0

您需要解析字符串Integer.Otherwise比較一些input.I可能會失敗,下面已經測試並得到了成功。

var n_temp = readLine().split(' '), i, s; 
width = readLine().split(' '); 
for(var a0 = 0; a0 < n_temp[1]; a0++){ 
    var i_temp = readLine().split(' '); s = 3; 
    for (i=parseInt(i_temp[0]);i<=parseInt(i_temp[1]);i++) {s = Math.min(s,width[i]); if (s == 1) break;} 
    console.log(s); 
} 
+0

哦,你是對的:D謝謝。 –

0

試試這個:

function main() { 
    var N, n, path, i, j, it, res; 
    [N, n] = readLine().split(' ').map(Number); 
    var path = readLine().split(' ').map(Number); 
    for (var it = 0; it < n; it++) { 
     [i, j] = readLine().split(' ').map(Number); 
     res = Math.min.apply(null, path.slice(i, j+1)); 
     console.log(res); 
    } 
} 
+0

代碼工作,因爲我把第6-7行改爲'console.log(Math.min.apply(null,width.slice(i_temp [0],++ i_temp [1]));'(no s,i因爲這條線可能是錯的,上面的行和我的代碼中的6-7行有什麼區別? –