【问题标题】:ruby array element groupingruby 数组元素分组
【发布时间】:2012-03-12 20:05:14
【问题描述】:

问题来了

我有一个数组:

a = [1, 2, 3, 4]

想得到:

b = [[1, 2, 3], [1, 3, 4], [1, 2, 4], [2, 3, 4]]

什么是最好的方法?谢谢!

【问题讨论】:

  • 在我看来你已经完成了!
  • [1, 2, 3, 4, 5, 6, 7, 8] 怎么样
  • 你是在找人帮你做作业吗?
  • 你试过什么?那里的预期输出是什么?你想要所有 7 个元素组吗?所有 3 个元素组?更好地提出问题,你会得到比我的恶作剧更好的答案。

标签: ruby arrays element grouping


【解决方案1】:

您正在寻找一组 4 个元素中的所有唯一一组 3 个元素。

使用数组#组合方式:

a = [1, 2, 3, 4]
b = a.combination(3).to_a

输出:

=> [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]

更多信息:

Array#combination
Wikipedia Combination

【讨论】:

    【解决方案2】:

    这将是我的第一个实现。 (但我猜性能很糟糕)

    array = [1,2,­3,4]
    b = []
    array.each­{|e| c = array­.clone; c.del­ete(e); b << c}
    # b.sort!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多