【发布时间】:2016-01-03 14:22:21
【问题描述】:
我有一个整数数组m。我正在寻找一种方法来检查m 的元素是否连续。有没有办法测试连续数字?
我想出了这段代码,打算在数组长度为四时工作:
m.count == 4 && (m.max-m.min) == 3
对于[1,1,1,4] 或[0,0,0,3] 错误地返回true。
【问题讨论】:
-
你想让
[4,6,5,7]通过吗? -
最简单的?:
m.count==4 && (m.size-1).times.all? { |i| m[i+1] == m[i] + 1 }. -
@illusionist,有关连续整数的定义,请参阅this Wiki。所以
[4,6,5,7]应该返回false。 -
[4, 3, 2, 1]是连续的。您是否希望它仅在系列增加时通过? -
@sawa,我提供的 Wiki 链接虽然不是权威的,但将连续整数序列定义为仅递增。
标签: arrays ruby integer conditional-statements