Ruby 数组的元素是否在另一个数组的范围内

Ruby 数组的元素是否在另一个数组的范围内,ruby,Ruby,对于这些阵列: 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_a = [50,13,25,35,45] array_b = [14,45] array_a.max >= array_b.max && array_a.min <= array_b.min #

对于这些阵列:

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_a = [50,13,25,35,45]
array_b = [14,45]
array_a.max >= array_b.max && array_a.min <= array_b.min
# => true
数组_b=[14,45] array_a.max>=array_b.max&&array_a.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
array_a=[50,13,25,35,45]
数组_b=[14,45]
最小值,最大值=数组_a.minmax
全部?{| num | num=min}
#=>正确
a=[50,13,25,35,45]
b=[13,45]
mina,maxa=a.minmax
结果=全部?{| num | mina-

a = [50,13,25, 35, 45]
b = [13,45]
min_max_a = a.minmax
b.all? {|num| num.between?(*min_max_a) }
# => true

很酷。完成后请告诉我们。由@adrian Answer完成。我们希望您通过提供您为解决问题而编写的代码来显示您的努力,并解释为什么它不适用于您。在堆栈溢出时要求代码而不显示努力被认为是非常糟糕的形式,是解决问题的一个很好的方法。OP希望看到什么,可以你告诉我了吗?我仍然很困惑。Babai的解决方案稍微快一些,也更优雅一些。试试这个:
放置15.between?(20,1)
放置15.between?(20,1,4)
如果我们知道第二个数组的大小为2并且已经排序,那么就不需要最小/最大值,您可以更高效地写入b[0]和b[1](或者b.first和b.last)。此外,如果您考虑between?的工作方式,直接比较要比调用方法进行比较快。获取两个数组的min()和max(),需要遍历每个数组两次。minmax()遍历第一个数组一次,all?遍历第二个数组一次。效率更高。我最初编写了
(mina..maxa).包括?(num)
@7stud您是对的!!
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