力扣 哈希表刷题回顾

哈希表理论总结

什么时候用哈希表,快速判断一个元素是否出现在集合中时,用哈希这种空间换时间的方法。

哈希函数与哈希碰撞

哈希函数是指将key映射到对应的哈希表上

哈希碰撞是指映射的过程中容易出现多对一的情况,用什么方法解决拉链法和线性探测法


哈希表主要有

数组、set 、map三种

数组适用于给定数量的元素,并且数量不多,查找起来很方便,占用空间小

set 分为三种 set, unordered_set, muti_set

set 与muti_set底层都是红黑树,并且key有序,muti_set特殊在key可以重复,他们的查找和删除时间复杂度都是O(Log(n))

而unordered_set 底层是哈希表,key无序,key不可以重复,查找删除时间复杂度为O(1)


map也分三种,map ,unordered_map,muti_map

map是有key 与value的,key都不可以修改

map与muti_map 底层是红黑树,key有序,muti_map的key可以重复,查找删除效率为O(log(n))

unordered_map 底层哈希表,key无序,key不可以重复,时间复杂度为O(1)

map使用时

增加元素用map.insert(pair<类型,类型>{key,value})

key对应的value 变化,例如map[key]++

查找元素,if( map.find(key) != map.end() )等于true即为找到了


刷题时,

注意,定义unordered_map<类型1,类型2> set1; 类型1对应key的类型,类型2对应value的类型

key就是要查找的元素,value就是元素出现的次数

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

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

相关文章

TCP连接的三次握手和断开的四次挥手

TCP连接的建立过程通过三次握手完成&#xff0c;‌而连接的关闭过程则通过四次挥手完成。‌ 三次握手&#xff1a;‌这是TCP连接建立的过程&#xff0c;‌主要目的是确保双方都准备好进行数据传输。‌具体步骤如下&#xff1a;‌ 客户端向服务器发送一个SYN报文&#xff0c;‌请…

Dubbo 负载均衡(Load Balance)

在分布式系统中&#xff0c;负载均衡是确保系统高效稳定运行的关键技术之一。Dubbo 作为一款高性能的 RPC 框架&#xff0c;提供了多种负载均衡策略以满足不同场景的需求。本文将深入介绍 Dubbo 中常用的几种负载均衡策略&#xff1a;随机&#xff08;Random&#xff09;、轮询…

QComboBox

构造函数&#xff1a; explicit QComboBox(QWidget *parent nullptr); 添加内容 QComboBox *comboBoxnew QComboBox(this);comboBox->addItem("A1");comboBox->addItem("A2");comboBox->addItem("A3");comboBox->addItem("…

独立开发者系列(24)——使用redis

&#xff08;一&#xff09;REdis的使用原理 在早期的网站的时候&#xff0c;如果系统本身功能不是很复杂&#xff0c;比如就是内部的几个用户使用&#xff0c;而且基本就是汇报一点简单的设备维护信息&#xff0c;还有日常公告。完全可以不使用数据库&#xff0c;直接使用jso…

IoTDB 集群高效管理:一键启停功能介绍

如何快速启动、停止 IoTDB 集群节点的功能详解&#xff01; 在部署 IoTDB 集群时&#xff0c;对于基础的单机模式&#xff0c;启动过程相对简单&#xff0c;仅需执行 start-standalone 脚本来启动 1 个 ConfigNode 节点和 1 个 DataNode 节点。然而&#xff0c;对于更高级的分布…

【C语言】多线程服务器

多线程服务器 多线程服务器步骤代码 最后 多线程服务器 步骤 主线程创建子线程&#xff0c;用子线程和客户端通信。 步骤&#xff1a; 1.使用socket函数&#xff0c;获取一个socket文件描述符 2.使用setsockopt端口复用 3.使用bind函数允许客户端的哪些ip可以访问服务器 4.使…

02:项目二:感应开关盖垃圾桶

感应开关盖垃圾桶 1、PWM开发SG901.1、怎样通过C51单片机输出PWM波&#xff1f;1.2、通过定时器输出PWM波来控制SG90 2、超声波测距模块的使用3、感应开关盖垃圾桶 需要材料&#xff1a; 1、SG90舵机模块 2、HC-SR04超声波模块 3、震动传感器 4、蜂鸣器 5、若干杜邦线 1、PWM开…

7、y0usef

难度-低 局域网靶机地址发现 端口服务扫描 通过目录扫描发现adminstration目录&#xff0c;但是访问发现提升没有权限 尝试通过添加请求头X-Forwarded-For: http://127.0.0.1 成功绕过 访问发现是一个登录框 尝试admin admin发现成功登录。。。 发现文件上传功能点 尝试进…

Nikto 扫描 Web 服务器漏洞

目录 介绍 使用 进阶用法 示例命令 介绍 Nikto 是一个开源的 Web 服务器扫描工具&#xff0c;旨在帮助发现和修复 Web 服务器上的安全问题。它是渗透测试和安全审计中的常用工具之一。 已知漏洞&#xff1a;检测已知的 Web 服务器和应用程序的漏洞&#xff0c;如常见的安全…

JavaWeb后端学习

Web&#xff1a;全球局域网&#xff0c;万维网&#xff0c;能通过浏览器访问的网站 Maven Apache旗下的一个开源项目&#xff0c;是一款用于管理和构建Java项目的工具 作用&#xff1a; 依赖管理&#xff1a;方便快捷的管理项目以来的资源&#xff08;jar包&#xff09;&am…

鸿蒙系统在服装RFID管理中的应用:打造智能零售新时代

​随着物联网技术的迅速发展&#xff0c;服装零售行业正面临着新的变革与挑战。鸿蒙系统作为新一代智能操作系统&#xff0c;结合RFID技术&#xff0c;为服装行业提供了高效、智能的管理解决方案。常达智能物联&#xff0c;作为RFID技术的领先企业&#xff0c;致力于将鸿蒙系统…

Linux的世界 -- 初次接触和一些常见的基本指令

一、Linux的介绍和准备 1、简单介绍下Linux的发展史 1991年10月5日&#xff0c;赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix&#xff09;中宣布他编制出了一种类似UNIX的小操作系统&#xff0c;叫Linux。新的操作系统是受到另一个UNIX的…

jenkins系列-04-jenkins参数化构建

使用maven build之前&#xff0c;先checkout 指定分支或标签&#xff1a; 拖拽调整顺序&#xff1a;shell执行在前&#xff0c;构建在后&#xff1a; gitee新建标签tag:

如何使用Gunicorn配置SSL/TLS加密Web服务

如何使用Gunicorn配置SSL/TLS加密Web服务 目录 简介SSL/TLS的基本概念 SSL与TLS的区别为什么需要SSL/TLS Gunicorn的简介与安装 什么是Gunicorn安装Gunicorn 生成SSL/TLS证书 自签名证书从受信任的证书颁发机构获取证书 配置Gunicorn使用SSL/TLS 配置文件的使用命令行参数配置…

代理模式(大话设计模式)C/C++版本

代理模式 C #include <iostream> using namespace std;class Subject // Subject 定义了RealSubject和Proxy的共用接口..这样就在任何使用RealSubject的地方都可以使用Proxy { public:virtual void func(){cout << "Subject" << endl;} };class R…

Nginx 负载均衡详解

Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;拥有丰富的功能和模块&#xff0c;负载均衡就是其中之一。负载均衡是一种技术&#xff0c;用于在多台服务器之间分配工作负载&#xff0c;以确保高可用性和可靠性。本文将详细介绍Nginx的负载均衡算法、工作原理、配置方法…

头歌资源库(29)流水线最优调度

一、 问题描述 二、算法思想 这是一个经典的作业调度问题&#xff0c;可以使用动态规划来解决。 首先&#xff0c;我们可以将每个任务定义为一个节点&#xff0c;图中的边表示任务的先后顺序。根据题目的要求&#xff0c;每个任务必须先在印刷车间进行印刷&#xff0c;然后…

AWS S3 基本概念

AWS S3 基本概念 引言什么是 AWS S3S3 应用S3 的核心概念 引言 最近工作中有接触到 S3&#xff0c;往 S3 写入数据&#xff0c;从 S3 访问数据&#xff0c;所以花点时间整理一下有关 S3 的基本概念。 什么是 AWS S3 AWS S3 (Amazon Simple Storage Service) 是一个由 Amazon…

Node.js配置CORS跨域(解决服务器api接口跨域问题)

一、安装cors npm install cors 二、在接口文件中使用cors const express require(express); const cors require(cors); // 引入 cors 中间件 const app express(); const port 3000;app.use(cors()); // 使用 cors 中间件const catList [{image: https://131703669…

prometheus+grafana应用监控配置

配置Prometheus 官方地址&#xff1a;Download | Prometheus &#xff08;wegt下载压缩包&#xff0c;解压并重命名prometheus&#xff0c;文件放于/data/prometheus即可&#xff09; 配置 service方法(文件放于 /etc/systemd/system/prometheus.service)&#xff1a; [Unit…