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

相关推荐
元亓亓亓5 分钟前
LeetCode热题100--152. 乘积最大子数组--中等
算法·leetcode·职场和发展
执笔论英雄14 分钟前
【RL】Slime训练流程
算法
技术路上的探险家20 分钟前
vLLM常用启动参数的详细解释
python·大模型·qwen·vllm
WHJ22626 分钟前
记录解决jupyter打开闪退
ide·python·jupyter
老歌老听老掉牙26 分钟前
1V1砂轮轮廓的几何建模与可视化分析
python·sympy·砂轮
浔川python社33 分钟前
浔川社团关于福利发放方案再次调整的征求意见稿公告
python
玄同76538 分钟前
Python 真零基础入门:从 “什么是编程” 到 LLM Prompt 模板生成
人工智能·python·语言模型·自然语言处理·llm·nlp·prompt
梭七y43 分钟前
【力扣hot100题】(103)移动零
数据结构·算法·leetcode
hakesashou1 小时前
python 随机函数可以生成字符串吗
开发语言·python
FakeOccupational1 小时前
【经济学】 基本面数据(Fundamental Data)之 美国劳动力报告&非农就业NFP + ADP + 美国劳动力参与率LFPR
开发语言·人工智能·python