【发布时间】:2010-12-17 19:31:36
【问题描述】:
假设,我有一个二维数组A,据说在其中某处有一个对象my_element。找出它的坐标的最快方法是什么?我正在使用 Ruby 1.8.6。
【问题讨论】:
-
实际上只有一种方法:遍历所有插槽,直到找到所需的内容(请参阅 mtyaka 的答案)。最坏的情况是
O(m*n),其中m和n是数组中的行数和列数。
标签: ruby arrays coordinates
假设,我有一个二维数组A,据说在其中某处有一个对象my_element。找出它的坐标的最快方法是什么?我正在使用 Ruby 1.8.6。
【问题讨论】:
O(m*n),其中m 和n 是数组中的行数和列数。
标签: ruby arrays coordinates
这是一种方式。不过,我不确定这是最快的。
class Array
def coordinates(element)
each_with_index do |subarray, i|
j = subarray.index(element)
return i, j if j
end
nil
end
end
array = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
array.coordinates(3) # => [0, 2]
array.coordinates(9) # => [2, 2]
array.coordinates(42) # => nil
【讨论】: