如何使用Ruby计算数组中唯一绝对值的数量?

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个绝对唯一值吗?

谢谢。

Fre*_*ung 5

Uniq接受一个可选块-比较块的结果的唯一性而不是值本身-因此您可以执行

array.uniq(&:abs).length
Run Code Online (Sandbox Code Playgroud)