我找到SortedSet#max
,但似乎是O(N)。现在我会做这样的事情:
s = SortedSet.new((1..100000).to_a.reverse)
其中reverse
只是为了确保。
min_element = nil; s.each { |x| min_element = x; break }
对于最大元素,我会构建另一个SortedSet
,其中所有值乘以-1
并执行相同的操作。有更传统的方法吗?
答案 0 :(得分:1)
Monkey patch SortedSet
。
class SortedSet
def max
@keys[-1]
end
def min
@keys[0]
end
end
那是O(1)。