慕尼黑8549860
2022-12-09 16:52:01
我正在閱讀 Grokking Algorithms,它給了我一個(gè)我無(wú)法在 Javascript 上復(fù)制的 Hash Map 的例子......這很簡(jiǎn)單,我唯一不知道的是如何將 ID 的值添加到“投票”變量var canVote = function(id) { var voted = {}; for(let i = 0; i < id.length; i++) { if(id in voted) { console.log("ID already voted!"); } else { voted[id] = id; console.log("Voted successufully!") } }}var id = [10, 20, 20]canVote(id);
1 回答

犯罪嫌疑人X
TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
Hash表的思想是查找一個(gè)值是否存在于O(1). 但是,如果你遍歷一個(gè)n元素?cái)?shù)組,你顯然最終會(huì)進(jìn)行n不斷的操作,這會(huì)導(dǎo)致O(n).
此外,您使用的邏輯在循環(huán)迭代中存在缺陷。我在下面的代碼中修改了它。請(qǐng)檢查。
var canVote = function(id) {
var voted = {};
id.forEach(voteId=>{
if(voted[voteId]){
console.log("ID already voted!");
}else{
voted[voteId] = voteId;
console.log("Voted successufully!")
}
})
}
var id = [10, 20, 20]
canVote(id);
添加回答
舉報(bào)
0/150
提交
取消