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

标签 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

显然这还不够,但我发现很难找出函数的其余部分。你能帮我找到这 5 个绝对的唯一值吗?

谢谢。

最佳答案

Uniq 采用可选 block - 比较 block 的结果而不是值本身的唯一性 - 所以你可以这样做

array.uniq(&:abs).length

关于ruby - 如何使用 Ruby 计算数组中唯一绝对值的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597579/

相关文章:

ruby-on-rails - 如何解决#<Book::ActiveRecord_Relation:0x007fb709a6a8c0> 的未定义方法 `to_key'?

c++ - TCHAR 数组的深拷贝被截断

arrays - 使用 int 数组创建一副带有面孔和花色的纸牌

MySQL:在 '1st' 之前对 '101st' 进行排序

java - 如何对文件进行分组排序?

algorithm - 如何使用 TimSort 按多个字段排序?

ruby-on-rails - 将 Hash 更改为 ruby​​ 中的数组数组

ruby - rvm - 无法将版本设置为 1.9.3

ruby - 如何从模块访问类变量?

java - 数组中所有匹配整数元素的总和