Xee*_*een 1 ruby arrays sorting
有一个给定的数组,该数组不为空,并且由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
Run Code Online (Sandbox Code Playgroud)
显然这还不够,但是我发现很难弄清楚其余的功能。您能帮我找到这5个绝对唯一值吗?
谢谢。
Uniq接受一个可选块-比较块的结果的唯一性而不是值本身-因此您可以执行
array.uniq(&:abs).length
Run Code Online (Sandbox Code Playgroud)