对于这些数组:
array_a = [50,13,25, 35, 45]
array_b = [14,45]
我想知道b中的每个值是否与a。中的值范围有关。
此处的结果应为true
,因为14和45都在13到50之间。
答案 0 :(得分:3)
a = [50,13,25, 35, 45]
b = [13,45]
mina, maxa = a.minmax
result = b.all? {|num| mina <= num and num <= maxa }
puts result
--output:--
true
或者纳入阿德里安的想法:
a = [50, 13, 25, 35, 45]
b = [13, 45]
mina, maxa = a.minmax
minb, maxb = b.minmax
result = (mina <= minb and maxb <= maxa)
puts result
--output:--
true
答案 1 :(得分:3)
我会这样做: -
a = [50,13,25, 35, 45]
b = [13,45]
min_max_a = a.minmax
b.all? {|num| num.between?(*min_max_a) }
# => true
答案 2 :(得分:2)
array_a = [50,13,25,35,45]
array_b = [14,45]
array_a.max >= array_b.max && array_a.min <= array_b.min
# => true
编辑:我认为Babai的解决方案稍微快一点,更优雅。
编辑:所以最有效的解决方案是:
array_a = [50,13,25,35,45]
array_b = [14,45]
min,max = array_a.minmax
array_b.all? {|num| num<=max && num>=min }
# => true