1 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
你誤解了“最偉大的”。您不必添加數(shù)字,而是將所有5個(gè)連續(xù)的數(shù)字作為數(shù)字。你可以這樣寫:
let pending = digits[i]*10000 + digits[i+1]*1000 + digits[i+2]*100 + digits[i+3]*10 + digits[i+4];
事實(shí)上,如果你不乘以,12345會(huì)給你1 + 2 + 3 + 4 + 5 = 15,但你必須得到12345,而不是15。
另外,您必須在結(jié)束前5位數(shù)字停止循環(huán):
for (let i = 0; i < digits.length-4; i++) {
另一個(gè)錯(cuò)誤是您轉(zhuǎn)換為數(shù)字的數(shù)組:
digits = digits.split('').map(x=>+x);
您的解決方案如下所示:
function solution(digits){
digits = digits.split('').map(x=>+x);
let solution = 0;
for (let i = 0; i < digits.length -4 ; i++) {
let pending = digits[i]*10000 + digits[i+1]*1000 + digits[i+2]*100 + digits[i+3]*10 + digits[i+4];
if (pending > solution) {
solution = pending;
}
}
return solution;
}
這就是我本來(lái)會(huì)做的:
function solution(digits){
return Math.max(...digits.split('').map((x,i,a)=>+(a.slice(i, i+5).join(''))))
}
你拿“數(shù)字”,然后創(chuàng)建一個(gè)數(shù)組,其中包含所有分隔的數(shù)字:
digits.split('')
使用此數(shù)組,對(duì)于每個(gè)索引 (i),您將 5 個(gè)連續(xù)數(shù)字的序列放入另一個(gè)數(shù)組中:
.map((x,i,a)=>a.slice(i, i+5)
您加入以下數(shù)字:
.join()
你把它轉(zhuǎn)換成一個(gè)數(shù)字:
+
您最多服用:
Math.max(...)
添加回答
舉報(bào)