首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript -我的哈希表出了什么问题?

JavaScript -我的哈希表出了什么问题?
EN

Stack Overflow用户
提问于 2017-04-20 14:14:37
回答 1查看 61关注 0票数 0

我正在做LeetCode上的第一道题,两个和。我正在尝试使用哈希表来做这道题。这是我想出来的:

代码语言:javascript
运行
复制
var twoSum = function(nums, target) {
  var hash = [];
  for(var i = 0; i < nums.length; i++) {
    var need = target - nums[i];
    if (!hash[need]) {
      hash[need] = i;
    } else {
      return [hash[nums[i]], i];
    }
  }  
};

当我运行我的代码时,我没有被定义为一个答案。假设我有一个数组[2,3,1,6,4],我的目标是8。当我迭代数组时,我将得到8-2=68-3=58-1=78-6=28-4=4。因此,根据我的代码,我的哈希表应该是这样的:

6:0 5:1 7:2 2:3 4:4

如果某个东西不在哈希表中,我想把它放到哈希表中。当我在散列中遇到数字时,我会返回hash[nums[i]]i,因为我已经准备好了索引,并且hash[nums[i]]有我需要的索引值。我不确定为什么我会得到一个未定义的。有什么建议可以让这一切变得更好吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-20 14:33:17

请看代码。我删除了else部分,并在结尾处返回了散列。如果这是你要找的东西,请告诉我。

代码语言:javascript
运行
复制
var twoSum = function(nums, target) {
  var hash = [];
  for(var i = 0; i < nums.length; i++) {
    var need = target - nums[i];
    if (!hash[need]) {
      hash[need] = i;
    } 
  }
  return hash;
};

console.log(twoSum([2,3,1,6,4],8))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43511585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档