我想检查一旦排序的数组值是否递增1
例如
[1, 2, 3, 4, 5] = TRUE
[1, 2, 8, 9, 10] = FALSE
Run Code Online (Sandbox Code Playgroud)
任何建议都非常感谢
fgb*_*fgb 36
array = [1,2,4,3]
array.sort.each_cons(2).all? { |x,y| y == x + 1 }
Run Code Online (Sandbox Code Playgroud)
试试这个:
def array_increments_by?(step, array)
sorted = array.sort
lastNum = sorted[0]
sorted[1, sorted.count].each do |n|
if lastNum + step != n
return false
end
lastNum = n
end
true
end
Run Code Online (Sandbox Code Playgroud)
用法:
array_increments?(1, [0,1,2,3]) #=> true
array_increments?(2, [0,2,4,6]) #=> true
array_increments?(2, [0,2,4,8]) #=> false
Run Code Online (Sandbox Code Playgroud)
def continguous?(arr)
a = arr.sort
(a.first..a.last).to_a == a
end
a = [2,1,3,4,5]
p continguous?(a)
#=> true
Run Code Online (Sandbox Code Playgroud)