我找到了SortedSet#max,但它似乎是O(N)。现在,我会这样做:
s = SortedSet.new((1..100000).to_a.reverse)在那里reverse只是为了确保。
min_element = nil; s.each { |x| min_element = x; break }对于maximum element,我将使用所有值乘以-1构建另一个SortedSet,并执行相同的操作。有没有更传统的方法来做到这一点?
发布于 2017-06-26 12:57:43
猴子补丁SortedSet。
class SortedSet
def max
@keys[-1]
end
def min
@keys[0]
end
end这是O(1)。
https://stackoverflow.com/questions/44753142
复制相似问题