我需要在一个不断变化的大集合中找到最小值/最大值,在 C++ 中,它可能是
#include<set>
using namespace std;
int minVal(set<int> & mySet){
return *mySet.begin();
}
int maxVal(set<int> & mySet){
return *mySet.rbegin();
}
int main(){
set <int> mySet;
for(..;..;..){
// add or delete element in mySet
...
// print the min and max value in the set
printf("%d %d\n", minVal(mySet), maxVal(mySet));
}
}
Run Code Online (Sandbox Code Playgroud)
在 C++ 中,每个查询操作都是 O(1),但是在 python 中,我尝试使用内置方法 min 和 max 但它太慢了。每个最小/最大操作需要 O(n) 时间(n 是我的 Set 的长度)。有没有优雅有效的方法来做到这一点?或者任何数据类型支持这些操作?
mySet=set()
for i in range(..):
# add or delete element in mySet
...
# …Run Code Online (Sandbox Code Playgroud)