对于这些数组:
array_a = [50,13,25, 35, 45]
array_b = [14,45]
我想知道b中的每个值是否都在a中的值范围内。
这里的结果应该是true
因为 14 和 45 都在 13 和 50 之间。
对于这些数组:
array_a = [50,13,25, 35, 45]
array_b = [14,45]
我想知道b中的每个值是否都在a中的值范围内。
这里的结果应该是true
因为 14 和 45 都在 13 和 50 之间。
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
我会做如下: -
a = [50,13,25, 35, 45]
b = [13,45]
min_max_a = a.minmax
b.all? {|num| num.between?(*min_max_a) }
# => true
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