ruby - 在数组中找到最小的缺失正整数

标签 ruby arrays

我有这样的整数数组:

[1, 2, 3, 6, 10]

我的问题是,获取该数组中不存在的最小正整数的最简单方法是什么?

类似于:

[1, 2, 3, 6, 10].lowest_available => 4
[1, 8, 3, 6, 10].lowest_available => 2
[5, 8, 3, 6, 10].lowest_available => 1

有人知道如何在 ruby​​ 中管理它吗?

最佳答案

class Array
  def lowest_available; (1..Float::INFINITY).find{|e| include?(e).!} end
end

[1, 2, 3, 6, 10].lowest_available # => 4
[1, 8, 3, 6, 10].lowest_available # => 2
[5, 8, 3, 6, 10].lowest_available # => 1

或者,按照 Stefan 的建议:

class Array
  def lowest_available; 1.step.find{|e| include?(e).!} end
end

关于ruby - 在数组中找到最小的缺失正整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29367533/

相关文章:

c++ - 检查数组元素中的所有数字是否为0或1 [c++]

c - 如何将 char 数组转换为 C 中的字符串?

java - 在 MongoDB Java 驱动程序中使用数组字段的项目

javascript - 在 WebGL 中,ARRAY_ELEMENT_BUFFER 如何知道要引用哪个 ARRAY_BUFFER

ruby-on-rails - Draper 装饰器以及在应用程序 Controller 上使用方法

ruby-on-rails - 将外部 API 包装到 Ruby 类中

ruby-on-rails - 我应该如何禁用 Rails 中的一些设计闪存消息

ruby - 可能对 curry 过程进行 instance_eval 吗?

ruby-on-rails - 测试时错误的 URI(不是 URI?) |规范

arrays - 无法在 swift 中将数组数据转换为 CLLocationCooperative2D 以在 map View 中绘制折线