【发布时间】:2015-02-03 10:13:00
【问题描述】:
考虑一个数组:[4, 6, 9]
要求所有排列:(一位、两位和三位数字)
[[9],
[6],
[4],
[9, 6],
[9, 4],
[6, 9],
[6, 4],
[4, 9],
[4, 6],
[9, 6, 4],
[9, 4, 6],
[6, 9, 4],
[6, 4, 9],
[4, 9, 6],
[4, 6, 9]]
【问题讨论】:
-
我不能说我会推荐以下内容,但它确实有效:
([4,6,9]+[nil,nil]).permutation(3).map(&:compact).uniq。 -
嗯,这似乎效率低下,很难成为通用的单线。
-
Jikku,你已经准确地表达了我的想法;尽管如此,我认为它值得评论(当然不是答案!),因为它对灰色的小细胞来说是很好的锻炼。我不熟悉特里凡得琅。我看这只是一个小镇,只有 160 万 +-。
-
@CarySwoveland 是的,蒂鲁文南特布勒姆是印度的一个小城市。你应该来这里一次,它是一座美丽的城市。实际上,您考虑包含
nils并稍后将其删除的方式给我留下了深刻的印象,但是在尝试对其进行改进时,我偶然发现了很多地方。无论如何,感谢您的宝贵时间。
标签: ruby arrays permutation