检查Ruby中的整数数组是否递增

Jul*_*lio 8 ruby arrays

我想检查一旦排序的数组值是否递增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)


Jac*_*kin 5

试试这个:

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)


ste*_*lag 5

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)