python学习笔记1-SortedList的使用

题目链接

  • SortedList增删改查的复杂度均为 O ( l o g n ) O(logn) O(logn)
  • 四种操作分别为:
    add, remove/discard/pop(弹出某个索引的元素,默认为最大值), count/index
python 复制代码
from sortedcontainers import SortedList

class StockPrice:

    def __init__(self):
        self.price = SortedList()
        self.timePriceMap = {}
        self.maxTimestamp = 0

    def update(self, timestamp: int, price: int) -> None:
        if timestamp in self.timePriceMap:
            self.price.discard(self.timePriceMap[timestamp]) # 删除原本的时间
        self.price.add(price)
        self.timePriceMap[timestamp] = price
        self.maxTimestamp = max(self.maxTimestamp, timestamp)

    def current(self) -> int:
        return self.timePriceMap[self.maxTimestamp]

    def maximum(self) -> int:
        return self.price[-1]

    def minimum(self) -> int:
        return self.price[0]



# Your StockPrice object will be instantiated and called as such:
# obj = StockPrice()
# obj.update(timestamp,price)
# param_2 = obj.current()
# param_3 = obj.maximum()
# param_4 = obj.minimum()

参考

https://www.cnblogs.com/baiyutang7/p/16541848.html

https://zhuanlan.zhihu.com/p/545601213

相关推荐
秃头狂魔2 分钟前
【HOT100】DAY1
算法·哈希算法
呱牛do it2 分钟前
企业级软件研发团队绩效考核系统开发(持续更新 Day 7)
python·fastapi·研发管理
钰衡大师3 分钟前
邮件头信息修改工具开发技术文档
开发语言·python
MicroTech20258 分钟前
MLGO微算法科技分布式量子算法模拟技术:以动态量子电路推动可扩展量子计算
科技·算法·量子计算
实名上网宋凯宣9 分钟前
水电参与电力市场研究(2)_内含代码
算法·电力市场
源码之家10 分钟前
计算机毕业设计:Python二手车交易价格预测分析平台 Django框架 随机森林 可视化 数据分析 汽车 车辆 大数据 hadoop(建议收藏)✅
大数据·爬虫·python·机器学习·django·汽车·课程设计
不知名的老吴10 分钟前
“程序 = 算法 + 数据结构”的拓展与启示
算法
阿i索13 分钟前
【蓝桥杯备赛Day4】基础算法
笔记·算法·蓝桥杯
清水白石00818 分钟前
Python 性能优化避坑指南:回归风险防控、基准压测与安全回滚实战
python·性能优化·回归
967718 分钟前
多线程编程:整个互斥的流程以及scoped_lock的用法,以及作用,以及 硬件上的原子操作和逻辑上的原子操作
开发语言·c++·算法