当前位置: 首页 > article >正文

Python | Leetcode Python题解之第380题O(1)时间插入、删除和获取随机元素

题目:

题解:

class RandomizedSet:
    def __init__(self):
        self.nums = []
        self.indices = {}

    def insert(self, val: int) -> bool:
        if val in self.indices:
            return False
        self.indices[val] = len(self.nums)
        self.nums.append(val)
        return True

    def remove(self, val: int) -> bool:
        if val not in self.indices:
            return False
        id = self.indices[val]
        self.nums[id] = self.nums[-1]
        self.indices[self.nums[id]] = id
        self.nums.pop()
        del self.indices[val]
        return True

    def getRandom(self) -> int:
        return choice(self.nums)

http://www.kler.cn/a/281290.html

相关文章:

  • docker 安装的mysql8 设置sql_mode
  • 页面间对象传递的几种方法
  • 开学季有什么必买好物?2024数码好物清单大合集!
  • Nginx负载均衡静态资源缓存配置指南
  • 共享打印机设置,可以一台打印接连接多台电脑(要求在同一个局域网下)
  • RocketMQ Dashboard
  • 【ORACLE】LOBSEGMENT类型对象清理
  • 邵阳网站建设手机网页
  • 【C++】vector(下)--上篇
  • 每天一个数据分析题(五百零四)- 抽取样本
  • hadoop生态圈(四)- MapReduce
  • 修改 Ubuntu 终端的语言为中文 ️✨
  • matlab 将数组从左向右翻转
  • java操作zookeeper
  • 如何使用ssm实现电子病历系统
  • 排序算法刷题笔记【牛客网】
  • android 离线的方式使用下载到本地的gradle
  • 【k8s系列】驾驭容器化未来:Kubernetes Pod的全面解析与简单实践
  • [C++] C++11详解 (三)类的成员函数、完美转发
  • 【C#】【EXCEL】Bumblebee/Classes/Marshal2.cs