小编asm*_*smn的帖子

在python中找到变化集的最小值和最大值的有效方法

我需要在一个不断变化的大集合中找到最小值/最大值,在 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)

python max set min

5
推荐指数
1
解决办法
6741
查看次数

标签 统计

max ×1

min ×1

python ×1

set ×1