我正在阅读 Grokking Algorithms,它给了我一个我无法在 Javascript 上复制的 Hash Map 的例子......这很简单,我唯一不知道的是如何将 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贡献2080条经验 获得超4个赞
Hash表的思想是查找一个值是否存在于O(1). 但是,如果你遍历一个n元素数组,你显然最终会进行n不断的操作,这会导致O(n).
此外,您使用的逻辑在循环迭代中存在缺陷。我在下面的代码中修改了它。请检查。
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);
添加回答
举报
0/150
提交
取消