【发布时间】:2019-03-09 11:29:54
【问题描述】:
在 Ruby 中使用 2 和算法。
我已经启动了一个哈希 t,然后在每个迭代器中我试图检查一个键是否存在于 t 中。 出于某种原因,if 语句似乎永远不会将 t[target-n] 评估为 true,尽管我将它添加到 else 部分。
def two_sum(nums, target)
t={}
a=[]
nums.each do |n|
if t[target-n]
a << nums.index(n)
a << nums.index(t[target-n])
return a
else
t[target-n] = n
end
end
end
【问题讨论】:
-
如果你想检查一个哈希是否有一个键,并根据键的存在而不是这个键的值来做一些事情,请使用
.has_key?(key)或.key?(key)方法。这是您应该检查的第一件事。 -
出于某种原因,即使我同时使用
.has_key?(key)或.key?(key)例如:t.has_key?(target-n)它仍然不起作用 -
该方法的实际期望输入/输出是什么?
-
算法不完整我只是不确定为什么哈希检查
t[target-n]在添加到 else 语句后不会评估为 true
标签: ruby