Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 迭代数组时,如何将一个元素与所有其他元素进行比较?_Ruby - Fatal编程技术网

Ruby 迭代数组时,如何将一个元素与所有其他元素进行比较?

Ruby 迭代数组时,如何将一个元素与所有其他元素进行比较?,ruby,Ruby,我想写一个函数,给定一个整数数组和number,确定(返回true或false)数组中的任意两个整数的和是否为number 我知道我可以使用遍历数组一次。每个 我遇到的问题是如何进行第二次循环,即将当前元素与其他元素相加 我怎样才能优雅地做到这一点 我对Ruby还不熟悉。这是。下面是一种计算时间和空间复杂性的方法: require'set' def find_对(数组、总和) set=set.new array.each do|i| 如果设置为true,则返回。成员?(i) 设置 请给出一些示

我想写一个函数,给定一个整数数组和
number
,确定(返回true或false)数组中的任意两个整数的和是否为
number

我知道我可以使用
遍历数组一次。每个

我遇到的问题是如何进行第二次循环,即将当前元素与其他元素相加

我怎样才能优雅地做到这一点

我对Ruby还不熟悉。

这是。下面是一种计算时间和空间复杂性的方法:

require'set'
def find_对(数组、总和)
set=set.new
array.each do|i|
如果设置为true,则返回。成员?(i)
设置


请给出一些示例,其中包含您期望的输入和输出以及您尝试的代码。提示:。目标是查找任何对还是所有对?@pjs,如果存在对,只需返回“true”。预期的返回类型/值是一条非常重要的信息。您应该按照@peter的建议编辑问题。虽然算法可能是线性的,但代码一点也不像Ruby。OP提到他们是Ruby初学者,所以谨慎地说,您不应该在Ruby中编写这样的代码。作为初学者,OP可能没有意识到这一点。@JörgWMittag您的重构版本是什么?@JörgWMittag如果需要,我会在生产中使用这些代码。。。请给我们看些别的东西!我在内部考虑过使用
Array#any?
,但最终我发现这个版本更加清晰。它是ruby,在我这边经过测试!这可能很漂亮,但并不实用,这是一个线性问题的二次解(空间和时间!)。
def find_pair(array, num)
  array.combination(2).any? { |combo| combo.sum == num }
end