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

相关推荐
Westward-sun.几秒前
Python argparse 模块:命令行参数解析实战全攻略
python·opencv·机器学习·rpc
YLXA3 分钟前
1.helle_cuda学习
linux·学习·算法
Storynone6 分钟前
【Day21】LeetCode:93. 复原IP地址,78. 子集,90. 子集 II
python·算法·leetcode
RechoYit6 分钟前
项目记录:把 OpenClaw 结合自己的交易项目做成飞书里的 AI Trading Partner-- A 股智能分析机器人
人工智能·python·金融·飞书·投资·openclaw
ab15151711 分钟前
3.14二刷基础93 94 83 98 99 完成进阶40 43
算法
nananaij14 分钟前
【LeetCode-01 两数之和 python解法】
开发语言·python·算法·leetcode
crescent_悦14 分钟前
PTA C++:正整数A+B
数据结构·c++·算法
丶小鱼丶16 分钟前
数据结构和算法之【链表】
java·数据结构·算法
礼拜天没时间.17 分钟前
力扣热题100实战 | 第31期:下一个排列——数组规律的极致探索
java·算法·leetcode·字典序·原地算法·力扣热题100
ws540d18 分钟前
Ranking All UsersLast Updated: 2026-03-14(Sat) 19:46算法启发式活跃用户所有用户
算法