面試碰到的一道演算法題,當時時間不夠沒做出來,現在整理了一下。
以下是暴力法的解,最簡潔明瞭,最好理解
// 暴力法
function get24
(arr)
let r =
;for
(let a =
0; a < arr.length; a++))
}return r;
}(arr)
;// 2 得到運算子的全部情況
const operators = function getoperators
(operators, len))}
else)}
)}return r;}(
['+'
,'-'
,'*'
,'/'],
4);// 3 得到括號的全部情況
const expression =
["`($ $ $) $ $ $ $`"
,"`($ $ $) $ ($ $ $)`"
,"`$ $ ($ $ $ $ $)`"
,"`($ $ $ $ $) $ $`"
,"`$ $ ($ $ $) $ $`"
,"`($ $ ($ $ $)) $ $`"];
for(let x =
0; x < numslist.length; x++)}
}}}let input =[1
,2,3
,4]console.
log(
get24
(input)
)
請輸出1到400之間所有數字中包含的1的個數
請輸出1到400之間所有數字中包含的1的個數,比如數字1中包含了乙個1,數字11中包含了兩個1,數字20中不包含1,數字1到21中共包含了13個1。function getcount 輸出 180 console.log getcount 答案一這個答案比較經典,效能也算是很不錯的了 const s...
統計所有0到n之間所有含有數字1的數字和
實現函式int func unsigned n 其中n為正整數,返回從1到n 包含1和n 之間出現的1的個數,如 func 13 6,func 9 1。注意 不能將整數轉化為字串 分析 這個問題可以分解為 對於乙個有digit位的數,可以統計其每個位上出現1的次數,遍歷每個位,累計的次數即為出現1的...
統計1到n之間的所有數字中1出現的個數
實 現函式int func unsigned n 其中n為正整數,返回從1到n 包含1和n 之間出現的1的個數,如 func 13 6,func 9 1。注意 不能將整數轉化為字串 這是網上以為兄弟的分析 分析 對於數n,可以把它分成三段,高位段most,當前位cur,低位段least,每一段分別為...