有一个给定的非空数组,它由 N 个值组成。该数组按升序排序。
任务是写一个函数,统计数组中唯一绝对值的个数。
比如数组A是:
A [0] = -5
A [1] = -3
A [2] = -1
A [3] = 0
A [4] = 3
A [5] = 6
绝对数是唯一的5,因为有5个唯一的绝对值分别是0,1,3,5,6。
假设:
N 是整数范围 [1 .. 100,000];数组 a 按升序排序。
到目前为止,我已经这样做了:
class AbsoluteUnique
def initialize int_array
puts "Enter content for the array:"
5.times do
int_array << gets
if A.size == 5
find_count
end
end
end
def find_count
end
end
显然这还不够,但我发现很难找出函数的其余部分。你能帮我找到这 5 个绝对的唯一值吗?
谢谢。
最佳答案
Uniq 采用可选 block - 比较 block 的结果而不是值本身的唯一性 - 所以你可以这样做
array.uniq(&:abs).length
关于ruby - 如何使用 Ruby 计算数组中唯一绝对值的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597579/