Leetcode 380. O(1) 时间插入、删除和获取随机元素

文章目录

  • 题目
  • 代码(11.28 首刷看解析)

题目

在这里插入图片描述
Leetcode 380. O(1) 时间插入、删除和获取随机元素

代码(11.28 首刷看解析)

1.length:表示的是数组的长度 数组
2.length():表示的是字符串的长度 字符串
3.size():表示的是集合中有多少个元素 集合

(int)(Math.random()*m); //生成[0,m]之间的随机整数。
m+(int)(Math.random()*(n+1-m)); //生成从m到n的随机整数[m,n]Random random = new Random();
random.nextInt(m+1); //生成[0,m]之间的随机整数。
m+random.nextInt(n+1-m); //生成从m到n的随机整数[m,n]
class RandomizedSet {List<Integer> nums;Map<Integer, Integer> map;public RandomizedSet() {nums = new ArrayList<>();map = new HashMap<>();}public boolean insert(int val) {if(map.containsKey(val)) {return false;}map.put(val, nums.size());nums.add(val);return true;}public boolean remove(int val) {if(!map.containsKey(val))return false;int index = map.get(val);// 和最后一个数交换Collections.swap(nums, index, nums.size() - 1);// 修改最后一个数的索引下标map.put(nums.get(index), index);// 移除最后一个数nums.remove(nums.size() - 1);// 同时将该值从哈希表中移除map.remove(val);return true;}public int getRandom() {int random = new Random().nextInt(nums.size());return nums.get(random);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万宾科技可燃气体监测仪科技作用全览

燃气管网在运行过程中经常会遇到燃气管道泄漏的问题&#xff0c;燃气泄漏甚至会引起爆炸&#xff0c;从而威胁人民的生命和财产安全&#xff0c;因此对燃气管网进行定期巡检是十分必要的工作。但是传统的人工巡检已不能满足城市的需要&#xff0c;除了选择增加巡检人员之外&…

#Js篇:前端的设计模式有哪些

常见的前端设计模式 单例模式 保证一个类仅有一个实例&#xff0c;并提供一个访问他的全局访问点&#xff1b;vuex常用于管理全局状态、配置信息等。 工厂模式 一个用于创建对象的接口&#xff0c;让子类决定实例化哪个类&#xff1b; 创建复杂对象或对象的组合。 策略模…

Web UI自动化测试框架

WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动化测试框架。 特点 提供更加简单API编写自动化测试。提供脚手架&#xff0c;快速生成自动化测试项目。自动生成HTML测试报告生成。自带断言方法&#xff0c;断言…

笔记:Pika Labs 3D 动画生成工具

Pika Labs 一款3D 动画生成工具 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134657306 目 录 1. 简介2. 准备2.1 安装 discord2.2 加入 Discord 频道 3. Pika 使用指南2.1 快速开始2.2 从图像到视频2.3 Pika Bot按钮2.4 提示&#xff08;Prompt&a…

Spark Streaming的基本数据流

先来介绍一下按照动静对数据的区分 静态数据 ​ 静态数据&#xff08;Static Data&#xff09;指的是在一段时间内不会或很少发生变化的数据。这种类型的数据通常是固定的&#xff0c;并且不会随着时间的推移而更新或仅偶尔更新。静态数据的典型例子包括配置文件、参考表、历…

面试题:说一下MyBatis动态代理原理?

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.MyBatis简介2.使用步骤2.1、引入依赖2.2、配置文件2.3、接口定义2.4、加载执行 3.原理解析 1.MyBatis简介 MyBatis是一个ORM工具&#xff0c;封装了JDBC的操作&a…

Redis 主从架构,Redis 分区,Redis哈希槽的概念,为什么要做Redis分区

文章目录 Redis 主从架构redis replication 的核心机制redis 主从复制的核心原理过程原理Redis集群的主从复制模型是怎样的&#xff1f;生产环境中的 redis 是怎么部署的&#xff1f;机器是什么配置&#xff1f;你往内存里写的是什么数据&#xff1f;说说Redis哈希槽的概念&…

前端入门(四)Ajax、Promise异步、Axios通信、vue-router路由

文章目录 AjaxAjax特点 Promise 异步编程&#xff08;缺&#xff09;Promise基本使用状态 - PromiseState结果 - PromiseResult Axios基本使用 Vue路由 - vue-router单页面Web应用&#xff08;single page web application&#xff0c;SPA&#xff09;vue-router基本使用路由使…

Rabbitmq发送邮件并消费邮件

&#x1f4d1;前言 本文主要是【Rabbitmq】——Rabbitmq发送邮件并消费邮件的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1…

jvm的相关知识点

Java Virtual Machine&#xff08;JVM&#xff09;是Java程序的运行环境&#xff0c;是Java技术的核心和关键之一。JVM负责执行Java字节码&#xff0c;并提供了一种平台无关性的执行环境&#xff0c;使得Java程序可以在不同的硬件和操作系统上运行。 下面是关于JVM的一些重要知…

spring应用在afterPropertiesSet方法中获取ApplicationContext

在afterPropertiesSet方法中获取ApplicationContext是可以的。Spring容器在初始化bean后&#xff0c;会自动调用afterPropertiesSet方法。在这个方法中&#xff0c;您可以获取到ApplicationContext对象。 以下是一个示例代码&#xff1a; import org.springframework.context…

【数学】旋转矩阵

参考链接 OpenGL from OpenGL.GL import * from OpenGL.GLUT import * from math import * import numpy as np def draw_axes():glClear(GL_COLOR_BUFFER_BIT)# 绘制坐标轴glColor3f(1.0, 1.0, 1.0) # 设置坐标轴颜色为白色glBegin(GL_LINES)glVertex2f(-1.0, 0.0) # x 轴g…

Python中使用matplotlib库绘图中如何给图形的图例设置中文字体显示

问题&#xff1a;当使用matplotlib绘图时遇到绘图&#xff0c;图例显示不出来中文字体 解决方式&#xff1a; 1&#xff09;加载字体管理库 from matplotlib.font_manager import FontProperties 2&#xff09;设置系统上字体的路径 font FontProperties(fname"C:\\W…

直线(蓝桥杯)

直线 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 在平面直角坐标系中&#xff0c;两点可以确定一条直线。如果有多点在一条直线上&#xff0c; 那么这些点中任意两点确定的直线是同一条。 给定平面上 2 3 个…

VMD扩展molUP安装与高斯接口使用

molUP是一个VMD扩展&#xff0c;提供了一个简单的方式来加载和保存高斯文件&#xff0c;并分析相关的结果。 molUP为VMD提供了一个图形界面&#xff0c;用户可以加载和保存高斯文件格式的化学结构。这个扩展包括一组工具来设置高斯支持的任何计算&#xff0c;包括ONIOM通过互动…

静态内部类(内部类) - Java

静态内部类 StaticInnerClass01.java 说明&#xff1a;静态内部类是定义在外部类的成员位置&#xff0c;并且有static修饰 可以直接访问外部类的所有静态成员&#xff0c;包含私有的&#xff0c;但不能直接访问非静态成员。可以添加任意访问修饰符&#xff08;public.protec…

计算机网络基础知识自用

示例&#xff1a; 域名如&#xff1a;alibaba.com (URL地址) IP地址为&#xff1a;xx.233.xxs.12 (访问) 端口&#xff1a;80 1.ip Internet Protocol Address&#xff0c;又译为网际协议地址&#xff0c;常见的IP地址分为IPv4与IPv6两大类。目前我们使用的都是IPv4的地址&am…

音视频学习(十九)——rtsp收流(tcp方式)

前言 本文主要介绍以tcp方式实现rtsp拉流。 流程图 流程说明: 客户端发起tcp请求&#xff0c;如向真实相机设备请求&#xff0c;端口一般默认554&#xff1b;tcp连接成功&#xff0c;客户端与服务端开始rtsp信令交互&#xff1b;客户端收到play命令响应后&#xff0c;开启线…

Leetcode 501 二叉搜索树中的众数

题意理解&#xff1a; 首先明确&#xff1a; 二叉搜索树中序遍历是严格的单调递增序列&#xff0c;也就是说&#xff0c;传统意义上得到二叉搜索树不存在相同的数&#xff0c;也不可能存在众数。 所以&#xff1a; 这里的二叉搜索树不是严格意义上的二叉搜索树&#xf…

PVE中CT容器安装openwrt X86的极简方法

下载推荐&#xff1a;https://openwrt.ai/ 使用环境PVE8.0&#xff0c;openwrt是以上网址的最新版&#xff0c;内涵及其丰富组件。 问题来源&#xff1a; 在PVE虚拟机可以很方便的使用img文件&#xff0c;转换qm 成一个硬盘文件&#xff0c;加入到虚拟机也就完成了&#xff0c…