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

力扣 哈希表刷题回顾

哈希表理论总结

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

哈希函数与哈希碰撞

哈希函数是指将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就是元素出现的次数

相关文章:

力扣 哈希表刷题回顾

哈希表理论总结 什么时候用哈希表&#xff0c;快速判断一个元素是否出现在集合中时&#xff0c;用哈希这种空间换时间的方法。 哈希函数与哈希碰撞 哈希函数是指将key映射到对应的哈希表上 哈希碰撞是指映射的过程中容易出现多对一的情况&#xff0c;用什么方法解决拉链法和…...

Qt 统计图编程

学习目标&#xff1a;Qt 折线图&#xff0c;柱形图和扇形统计图编程 学习基础 Qt QChart 曲线图表操作-CSDN博客 学习内容 Qt中绘制三种常见的图表非常方便, 主要步骤如下: 1. 折线图: - 使用QLineSeries定义折线数据,添加多个坐标点 - 使用QValueAxis创建X轴和Y轴 - 将…...

SQL中的谓词与谓词下推

在 SQL 查询中&#xff0c;谓词&#xff08;Predicate&#xff09;是用来对数据进行过滤的条件。它们决定了数据从数据库表中被选择的条件。理解和正确使用 SQL 谓词对于编写高效查询至关重要。 目录 什么是谓词&#xff1f;一个真实的故事SQL 谓词的代码示例比较谓词逻辑谓词…...

浅聊授权-spring security和oauth2

文章目录 前言自定义授权spring security授权oauth2授权概述 前言 通常说到授权&#xff0c;就会想到登录授权、token令牌、JWT等概念&#xff0c;授权。顾名思义就是服务器授予了客户端访问资源的权益&#xff0c;那么要实现授权有几种方案呢&#xff0c;三种授权方式在公司项…...

时间复杂度计算

目录 时间复杂性 ⼤O的渐进表⽰法 时间复杂性 定义&#xff1a;在计算机科学中&#xff0c;算法的时间复杂度是⼀个函数式T(N)&#xff0c;它定量描述了该算法的运⾏时间。 时间复杂度是衡量程序的时间效率&#xff0c;那么为什么不去计算程序的运⾏时间呢&#xff1f; 1.…...

React 18 + Babel 7 + Webpack 5 开发环境搭建

文章目录 一、基础开发环境搭建1. 新建项目目录2. 项目目录结构及内容3. 安装 React 18 Babel 7 Webpack 54. 配置 Babel 和 Webpack5. 调试/构建项目 二、扩展项目支持的能力&#xff08;待补充&#xff09;1. JS 扩展&#xff08;待补充&#xff09;2. CSS 扩展&#xff08…...

MongoDB Shard 集群 Docker 部署

MongoDB Shard Docker 部署 部署环境 主机地址主机配置主机系统Mongodb1/192.168.31.1352CPU 4GBDebian12Mongodb2/192.168.31.1092CPU 4GBDebian12Mongodb3/192.168.31.1652CPU 4GBDebian12 镜像版本 mongodb/mongodb-community-server:5.0.27-ubuntu2004 部署集群 部署…...

MacOS 开发 — Packages 程序 macOS新版本 演示选项卡无法显示

MacOS 开发 — Packages 程序 macOS新版本 演示选项卡无法显示 问题描述 &#xff1a; 之前写过 Packages 的使用以及如何打包macOS程序。最近更新了新的macOS系统&#xff0c;发现Packages的演示选项卡无法显示&#xff0c;我尝试从新安转了Packages 也是没作用&#xff0c;…...

Hive的分区表分桶表

1.分区表&#xff1a; 是Hive中的一种表类型&#xff0c;通过将表中的数据划分为多个子集&#xff08;分区&#xff09;&#xff0c;每个分区对应表中的某个特定的列值&#xff0c;可以提高查询性能和管理数据的效率。分区表的每个分区存储在单独的目录中&#xff0c;分区的定义…...

PostgreSQL17索引优化之支持并行创建BRIN索引

PostgreSQL17索引优化之支持并行创建BRIN索引 最近连续写了几篇关于PostgreSQL17优化器改进的文章&#xff0c;其实感觉还是挺有压力的。对于原理性的知识点&#xff0c;一方面是对这些新功能也不熟悉&#xff0c;为了尽可能对于知识点表述或总结做到准确&#xff0c;因此需要…...

在Vue中,子组件向父组件传递数据

在Vue中&#xff0c;子组件向父组件传递数据通常通过两种方式实现&#xff1a;事件和回调函数。这两种方式允许子组件与其父组件进行通信&#xff0c;传递数据或触发特定的行为。 1. 通过事件传递数据 子组件可以通过触发自定义事件&#xff0c;并将数据作为事件的参数来向父组…...

数据结构(顺序表)

谈起顺序表&#xff0c;那我们就不得不先来了解一下它的上级概念---线性表 线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使⽤的数据结构&#xff0c;常⻅的线性表&#xff1a;顺序表、链表、栈、队列…...

MySQL之基本查询(上)-表的增删查改

目录 Create(创建) 案例建表 插入 单行数据 指定列插入 单行数据 全列插入 多行数据 全列插入 插入是否更新 插入时更新 替换 Retrieve(读取) 建表插入 select列 全列查询 指定列查询 查询字段为表达式 为查询结果指定别名 结果去重 where条件 比较运算符 逻辑运…...

RocketMQ源码学习笔记:Producer发送消息流程

这是本人学习的总结&#xff0c;主要学习资料如下 马士兵教育rocketMq官方文档 目录 1、Overview2、验证消息3、查找路由4、选择消息发送队列4.1、选择队列的策略4.2、源码阅读4.2.1、轮询规避4.2.2、故障延迟规避4.2.2.1、计算规避时间4.2.2.2、选择队列 4.2.3、ThreadLocal的…...

kotlin flow collect collectLatest 区别

在 Kotlin 协程库中&#xff0c;collect 和 collectLatest 都是用于收集 Flow 中发射的数据的方法&#xff0c;但它们在处理数据和响应新数据的方式上有所不同。 collect collect 是一个挂起函数&#xff0c;用于收集 Flow 中发射的所有数据。它会按顺序处理每一个发射的数据…...

ELK集群搭建

ELK集群搭建 文章目录 ELK集群搭建1.环境准备2.Elasticsearch环境搭建1.创建es账户并设置密码2.选择对应版本进行下载3.编辑配置文件4.设置JVM堆大小 #7.0默认为4G5.创建es数据及日志存储目录6.修改安装目录和存储目录权限 3.系统优化1.增加最大文件打开数2.增加最大进程数3.增…...

zookeeper+kafka消息队列集群部署

一.消息队列 1、什么是消息队列 消息&#xff08;Message&#xff09;是指在应用间传送的数据。消息可以非常简单&#xff0c;比如只包含文本字符串&#xff0c;也可以更复杂&#xff0c;可能包含嵌入对象。 消息队列&#xff08;MessageQueue&#xff09;是一种在软件系统中用…...

LLM_入门指南(零基础搭建大模型)

本文主要介绍大模型的prompt&#xff0c;并且给出实战教程。即使零基础也可以实现大模型的搭建。 内容&#xff1a;初级阶段的修炼心法&#xff0c;帮助凝聚和提升内力&#xff0c;为后续修炼打下基础。 1、prompt 1.1含义和作用 prompt就是提示工程的意思。在大型语言模型中…...

Element Plus 与 Vue 3:构建现代化 Web 应用的完美搭档

引言 Element Plus是基于Vue 3的组件库&#xff0c;它继承了Element UI的优秀基因&#xff0c;为Vue 3应用提供了丰富的界面组件。Element Plus不仅拥有与Element UI相同的高质量组件&#xff0c;还针对Vue 3进行了优化和更新&#xff0c;确保了与Vue 3的无缝集成。 环境准备…...

线程间通信与变量修改感知:几种常用方法

线程间通信与变量修改感知&#xff1a;几种常用方法 1. 使用volatile关键字2. 使用synchronized关键字3. 使用wait/notify/notifyAll机制4. 使用轮询&#xff08;Polling&#xff09; &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java…...

如何永久保存微信聊天记录?WeChatMsg免费工具终极使用指南

如何永久保存微信聊天记录&#xff1f;WeChatMsg免费工具终极使用指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

Lisk SDK安全最佳实践:保护区块链应用免受攻击的10个技巧

Lisk SDK安全最佳实践&#xff1a;保护区块链应用免受攻击的10个技巧 【免费下载链接】lisk-sdk &#x1f529; Lisk software development kit 项目地址: https://gitcode.com/gh_mirrors/li/lisk-sdk Lisk SDK是一款强大的区块链应用开发工具包&#xff0c;专为构建安…...

利用快马ai快速原型ventoy图形化工具,三步制作多系统启动u盘

利用快马AI快速原型Ventoy图形化工具&#xff0c;三步制作多系统启动U盘 最近在折腾多系统启动盘&#xff0c;发现Ventoy这个开源工具确实好用——直接把ISO镜像扔进U盘就能启动&#xff0c;再也不用反复格式化。但命令行操作对新手不太友好&#xff0c;于是想做个图形化工具。…...

从产品到生态:观远数据的一站式智能分析平台之路

开篇&#xff1a;客户现场的真实发问 上个月在华东某快消头部企业的CIO圆桌会上&#xff0c;负责数字化转型的副总裁问了我一个很尖锐的问题&#xff1a; “你们BI厂商总说一站式&#xff0c;但我前几年买的BI工具&#xff0c;最后要么数据接不上要额外买数仓工具&#xff0c;要…...

实时控制循环示例

LCC-S无线电能传输pi移相控制输出电压&#xff0c;效果很棒 SS结构&#xff0c;与其他低阶高阶拓扑也可以做 SS拓扑最近在捣鼓无线电能传输系统时&#xff0c;意外发现LCC-S拓扑搭配π型移相控制&#xff0c;输出效果堪比美颜相机里的磨皮功能。这货不仅能把输出电压纹波压得比…...

Agent落地方法论入门到精通(非常详细),帮你避坑收藏这篇就够了!

涉及到智能体应用的开发时&#xff0c;agent相关知识不可能绕过&#xff0c;不管是基于langchain还是autogen&#xff0c;都要系统性了解agent&#xff0c;才能对agent开发有全面充分的理解。 Agent 到底是什么 如果从工程角度定义&#xff1a; Agent 以大模型为核心决策器&a…...

HTML怎么标注输入格式示例_HTML placeholder展示格式模板【技巧】

不能。placeholder属性值仅支持纯文本&#xff0c;HTML标签如<small>会被原样显示&#xff0c;不解析&#xff1b;它不支持样式、子元素或换行&#xff0c;且无法替代label实现无障碍访问&#xff0c;需用浮动label等结构替代。placeholder 里能写 HTML 吗不能。placehol…...

告别Frida注入:手把手教你用IDA和010 Editor修改TikTok的libsscronet.so实现抓包(Android 30.8.4)

静态逆向实战&#xff1a;不依赖Frida修改TikTok核心通信模块实现抓包 在移动安全研究领域&#xff0c;动态注入工具如Frida一直是分析应用协议的主流选择。但当面对TikTok这类采用自研通信协议的应用时&#xff0c;频繁的版本更新会导致动态注入方案需要持续维护。本文将展示一…...

Mac开发者必看:如何同时管理Protobuf 2.6.1和3.19.4版本(附.proto文件编译避坑指南)

Mac开发者必看&#xff1a;如何同时管理Protobuf 2.6.1和3.19.4版本&#xff08;附.proto文件编译避坑指南&#xff09; 在跨版本协议开发中&#xff0c;Mac开发者常面临一个棘手问题&#xff1a;如何在同一台机器上同时维护Protobuf 2.6.1和3.19.4两个不兼容的版本&#xff1f…...

Unity VideoPlayer常见报错解析:First video frame not zero与Color Standard问题实战

1. 解析"First video frame not zero"报错 遇到Unity VideoPlayer报出"First video frame not zero"时&#xff0c;很多开发者会一头雾水。这个错误直译过来就是"第一帧视频不是从零开始的"&#xff0c;听起来有点抽象。我用个生活中的例子解释&…...