如何在Ruby中实现这一点呢?

wj8zmpe1  于 2022-11-22  发布在  Ruby
关注(0)|答案(1)|浏览(197)

下面的代码块是一个问题的解决方案,在这个问题中,您需要找到数组中两个元素之和等于定义的整数(k)

# Solution 1:
def two_sum(lst, k):
for i in range(len(lst)):
    for j in range(len(lst)):
        if i != j and lst[i] + lst[j] == k:
            return True
return False

# Solution 2:
def two_sum(lst, k):
seen = set()
for num in lst:
    if k - num in seen:
        return True
    seen.add(num)
return False
oxosxuxt

oxosxuxt1#

1.Python 皮 ( 锯齿 状 断裂 ? )

  1. for i in range(x) 是 Python 在 0 到 x - 1 范围 内 迭代 的 一 种 方式 。 在 Ruby 中 , 它 可以 用 几 种 不同 的 方式 来 表示 , 例如 , 非常 类似 的 方式 是 使用 for 循环 for i in 0...x , 使用 (0...x).each { |i| ... } 甚至 x.times { |i| ... } 作为 范围 内 的 迭代 器 。
  2. seen 包含 列表 ( 数组 ) 中 已经 检查 过 的 数字 。 如果 k - num 等于 seen 中 的 任意 数字 ( 我们 将 其 命名 为 j ) , 则 表示 j + num == k - q.e.d. 。 例如 , 假设 我们 有 lst = [1,3,4,7,11]k = 5 。 在 这种 情况 下 , 算法 将 如下 工作 :
    步骤 1 : seen = []num = 1k - num = 44 不在 seen 中 - 我们 将 1 添加 到 seen
    步骤 2 : seen = [1]num = 3k - num = 22 不在 seen 中 - 我们 将 3 添加 到 seen
    步骤 3 : seen = [1,3]num = 4k - num = 1 。 瞧 ! 1 已经 在 seen 中 , 这 意味 着 我们 可以 对 初始 问题 给出 肯定 的 答案 :源 数组 中 有 两 个 元素 , 因此 它们 的 和 等于 5 ...

相关问题