快一点。我有一个阵列[92,901]我想安排这些,以便如果他们被压缩在一起,他们将产生最大的潜在数字。在这种情况下,它将是92然后901来制作92901.这些数字也可能很大,并且数组中可能有很多整数。
我打算将每个数字拆分成一个数组,然后将每个数字与相应的相对数组位置进行比较。我觉得这样做会有更好的红宝石方式。
答案 0 :(得分:2)
ar = [1,2,99,901]
p ar.map(&:to_s).sort.reverse.join.to_i # => 9990121
p ar.sort_by(&:to_s).reverse # => [99, 901, 2, 1]
这将创建一个字符串数组,这些字符串按字母顺序排序。这种排序从低到高 - 需要相反,因此排序的数组是相反的。