这似乎是一个很常见的问题。可悲的是,我在 SO 上找不到它。如果这是一个重复的问题;我为此道歉。
假设我有两个整数数组A
和B
:
A = [17, 3, 9, 11, 11, 15, 2]
B = [1, 13]
A
如果 array的任何元素小于array 的任何元素,我需要返回 true 或 false B
。
执行此操作的简单方法是每个循环使用 2 个(O(n^2)
复杂性)
def is_greater?(a,b)
retVal = false
b.each { |element|
a.each { |value|
if (value < element)
retVal = true
break
end
}
}
return retVal
end
is_greater?(A,B) => true
我还整理了两个数组中的元素,然后使用单个 while 循环来确定 in 中的元素A
是否小于in 中的元素B
。
A.sort!
B.sort!
def is_greater?(a,b)
retVal = false
i = 0
j = 0
while (i < a.length && j < b.length)
if (a[i] < b[j])
retVal = true
break
elsif (a[i] == b[j])
i = i + 1
j = j + 1
else
j = j + 1
end
end
return retVal
end
is_greater?(A,B) => true
我想知道在代码行方面是否有一种有效、精确的方法来做到这一点。我试图弄清楚如何使用该any?
块,但这对我来说没有任何意义。