Day6 25/2/19 WED

【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p=4&vd_source=04ee94ad3f2168d7d5252c857a2bf358

目录

4、表

4.1 按存储结构划分

4.1.1 哈希表

4.1.1.1 函数调用

4.1.1.2 增删改查操作

4.1.2 单链表 & 双链表​

4.1.2.1 面试时的方法论

4.2 按元素数值大小划分

4.2.1 有序表


笔记:

4、表

哈希表和链表的区别:

哈希表是根据关键码值(Key Value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找的速度。

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。

4.1 按存储结构划分

4.1.1 哈希表

4.1.1.1 函数调用

如果只有key没有value,在java中可以使用HashSet结构。

如果既有key也有value,在java中可以使用HashMap结构。

有无value数据就是set和map的唯一区别。

4.1.1.2 增删改查操作

哈希表增删改查操作的时间复杂度都是常数级别的,但这个常数时间一般较长。

map中的put()方法既是插入操作,也是更新操作,比如:

HashMap<Integer, String> testMap = new HashMap();

testMap.put(1, “abc”);

testMap.put(1, “ghj”);

System.out.print(testMap.get(1)); //会打印出ghj,而非abc。

map插入/更新操作:map名.put(键名, 值);

map查询键是否存在的操作:map名.contsinKey(键名); //在则显示true

map查询某个键是否存在值的操作:map名.get(键名); //在则显示值,不在则返回null

map移除操作:map名.remove(键名);

set插入/更新操作:set名.add(键名);

set查询是否存在的操作:set名.contians(键名); //在则显示true

set移除操作:set名.remove(键名);

哈希表中,如果key的类型不是基础类型,是自己定义的Node等类型,存储到key中的就是内存地址;如果key是基础类型,存储的就是值而非地址。

4.1.2 单链表 & 双链表

4.1.2.1 面试时的方法论

所有链表题在做的时候,一律贯彻笔试和面试区别对待的方式。

(1)对于笔试,不用太在乎时间复杂度,一切为了时间复杂度。

(2)对于面试,时间复杂度仍重要,但也要找到空间最省的方法。

(3)重要技巧:额外数据结构记录(哈希表)、快慢指针

例题普通版:判断一个链表是否为回文结构。

笔试的做法:创建一个栈,遍历链表的时候把元素依次放进去。然后再遍历一遍链表,边遍历边弹栈,比较二者是否一样。(栈弹出的顺序是先进后出,也就是链表的逆序)

另一个做法:只把后一半链表压入栈,边遍历前一半链表边弹栈比较二者是否相同,这样空间使用从N变为了N/2。用“快慢指针”可以实现,慢指针s一次走一格,快指针f一次走两格,当快指针遍历到链表末尾的时候,慢指针正好抵达链表中央。把从慢指针指向的元素到链表末尾都压入栈。

补充,快慢指针这块需要根据题目要求去修改具体的代码。当链表为偶数时,慢指针有可能指向中线的左侧或右侧,这是边界问题,需要按题目需求去具体分析快慢指针哪个先走。

例题进阶版:要求时间复杂度O(N),额外空间复杂度O(1)。

快慢指针中的慢指针遍历到中点的时候,慢指针边往后便利边把元素指向改为指向中点。改完后再用两个指针分别从两端往中间遍历,边遍历边比较,遍历到中点指向的null之后停止。

最后再把链表的指向改回去。

这个方法无实际作用,只是面试时纯粹为了考验编程能力。

4.2 按元素数值大小划分

4.2.1 有序表

如果只有key没有value,java中可用TreeSet结构。

如果既有key也有value,java中可用TreeMap结构。

有序表和哈希表的区别是:哈希表的key是无序的,有序表的key是有序的。

有序表中,如果key的类型不是基础类型,是自己定义的Node等类型,存储到key中的就是内存地址,而且必须设置个比较器来告诉程序如何比较非基础类型;如果key是基础类型,存储的就是值而非地址。

有序表的时间复杂度是O(logN)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【分布式理论12】事务协调者高可用:分布式选举算法

文章目录 一、分布式系统中事务协调的问题二、分布式选举算法1. Bully算法2. Raft算法3. ZAB算法 三、小结与比较 一、分布式系统中事务协调的问题 在分布式系统中&#xff0c;常常有多个节点&#xff08;应用&#xff09;共同处理不同的事务和资源。前文 【分布式理论9】分布式…

驱动开发系列37 - Linux Graphics 2D 绘制流程(二)- 画布创建和窗口关联

一:概述 前面介绍Pixmap表示一块画布,是绘制发生的地方,本节看看驱动程序如何为画布分配内存/显存,以及如何与窗口关联的。 二:为画布分配BO 在系统启动时(用户登录系统之后,会重启Xorg),在 Xorg 服务器初始化时,要为屏幕创建根窗口的 Pixmap,并绑定到 GPU framebu…

DeepSeek服务器繁忙 多种方式继续优雅的使用它

前言 你的DeepSeek最近是不是总是提示”服务器繁忙,请稍后再试。”&#xff0c;尝试过了多次重新生成后&#xff0c;还是如此。之前DeepSeek官网连续发布2条公告称&#xff0c;DeepSeek线上服务受到大规模恶意攻击。该平台的对话框疑似遭遇了“分布式拒绝服务攻击”&#xff0…

【Mpx】-环境搭建项目创建(一)

一.概述 官方文档&#xff1a;https://mpxjs.cn/guide/basic/start.html mpxjs/cli文档: https://github.com/mpx-ecology/mpx-cli 二.脚手架安装&创建项目 2.1项目创建 //脚手架安装 npm i -g mpxjs/cli //创建Mpx项目 mpx create mpx-demo(项目名称) //安装依赖 np…

【快速入门】Unity 常用组件(功能块)

欢迎关注 、订阅专栏 【unity 新手教程】谢谢你的支持&#xff01;&#x1f49c;&#x1f49c; 文章目录 Unity 常用组件&#xff08;功能块&#xff09;&#xff1a;Transform - 变换&#xff1a;坐标、朝向、大小Mesh Filter - 加载网格数据Mesh Renderer- 渲染网格Camera - …

python爬虫系列课程2:如何下载Xpath Helper

python爬虫系列课程2:如何下载Xpath Helper 一、访问极简插件官网二、点击搜索按钮三、输入xpath并点击搜索四、点击推荐下载五、将下载下来的文件解压缩六、打开扩展程序界面七、将xpath.crx文件拖入扩展程序界面一、访问极简插件官网 极简插件官网地址:https://chrome.zzz…

Unity性能优化个人经验总结(不定期更新)

字符串 在使用常量或静态变量 Update、LateUpdate、FixedUpdate等每帧调用或调用频率很高的函数内使用字符串时&#xff0c;均使用常量或静态变量处理。 原因解释&#xff1a;除了常量或静态变量的字符串将会在每一次调用时&#xff0c;将会new一个新的字符串&#xff0c;导…

机器学习小项目之加利福尼亚房价数据分析

1. 安装必要的库 首先&#xff0c;确保安装了以下必要的 Python 库&#xff1a; pip install scikit-learn pandas matplotlib2. 导入所需库 在代码中&#xff0c;我们需要导入一些常用的库来处理数据、训练模型和评估结果&#xff1a; import pandas as pd import numpy a…

基于MATLAB的均匀面阵MUSIC算法DOA估计仿真

基于MATLAB的均匀面阵MUSIC算法DOA估计仿真 文章目录 前言一、二维MUSIC算法原理二、二维MUSIC算法MATLAB仿真三、MATLAB源代码总结 前言 \;\;\;\;\; 在波达角估计算法中&#xff0c;MUSIC 算法与ESPRIT算法属于特征结构子空间算法&#xff0c;是波达角估计算法中的基石。在前面…

【SQL】SQL多表查询

多表查询案例联系点击此处 &#x1f384;概念 一般我们说的多表查询都涉及外键和父子表之间的关系。比如一对多:一般前面指的是父表后面指的是子表。 ⭐分类 一对多(多对一) 多对多 一对一 ⭐一对多 &#x1f4e2;案例&#xff1a;部门与员工的关系 &#x1f4e2;关系&…

【架构】分层架构 (Layered Architecture)

一、分层模型基础理论 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0365cf0bfa754229bdedca6b472bffc7.png 1. 核心定义 分层架构(Layered Architecture)模型是一种常见的软件设计架构,它将软件系统按照功能划分为不同的层次,每个层次都有特定的职责和功能…

2025年02月19日Github流行趋势

项目名称&#xff1a;OmniParser 项目地址url&#xff1a;https://github.com/microsoft/OmniParser 项目语言&#xff1a;Jupyter Notebook 历史star数&#xff1a;12878 今日star数&#xff1a;2153 项目维护者&#xff1a;yadong-lu, ThomasDh-C, aliencaocao, nmstoker, kr…

uni-app发起网络请求的三种方式

uni.request(OBJECT) 发起网络请求 具体参数可查看官方文档uni-app data:请求的参数; header&#xff1a;设置请求的 header&#xff0c;header 中不能设置 Referer&#xff1b; method&#xff1a;请求方法&#xff1b; timeout&#xff1a;超时时间&#xff0c;单位 ms&a…

Scrapy:DownloaderAwarePriorityQueue队列设计详解

DownloaderAwarePriorityQueue 学习笔记 1. 简介 DownloaderAwarePriorityQueue 是 Scrapy 中一个高级的优先级队列实现&#xff0c;它不仅考虑请求的优先级&#xff0c;还会考虑下载器的负载情况。这个队列为每个域名&#xff08;slot&#xff09;维护独立的优先级队列&#…

用DeepSeek零基础预测《哪吒之魔童闹海》票房——从数据爬取到模型实战

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 **一、为什么要预测票房&#xff1f;****二、准备工作****三、实战步骤详解****Step 1&#xff1a;数据爬取与清洗&am…

django连接mysql数据库

1.下载mysqlclient第三方库 2.在settings.py里连接数据库&#xff08;提前建好&#xff09; DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: 学生信息,USER: root,PASSWORD: 999123457,HOST: localhost,POST: 3306,} } 3.在models.py里创建一个类&#xff0…

Linux中的Ctrl+C与Ctrl+Z

CtrlC与CtrlZ的区别 在Linux中&#xff0c;当我们在执行一个命令运行代码时&#xff0c;由于运行时间过长或中途出现报错&#xff0c;此时&#xff0c;我们可能需要终止该操作&#xff0c;这时候&#xff0c;该使用CtrlC还是CtrlZ呢&#xff1f; 1、CtrlC CtrlC&#xff1a;终…

新手向:SpringBoot后端查询到数据,前端404?(附联调时各传参方式注解总结-带你一文搞定联调参数)

前言&#xff1a; 在 Spring Boot 项目开发中&#xff0c;后端小伙伴可能经常遇到这样诡异的场景&#xff1a; 后台日志显示查询到了数据&#xff0c;但前端却一脸懵逼地告诉你 404 Not Found&#xff1f;接口明明写好了&#xff0c;Postman 直接访问却提示找不到&#xff1f…

网络安全重点总结

第一章 网络安全基础 信息安全的三个目标 1.保密性 2. 完整性 3. 可用性 4. 合法使用网络安全的发展态势&#xff1a; 1. 计算机病毒层出不穷 2. 黑客对全球网络的恶意攻击石头逐年上升 3. 由于技术不完备&#xff0c;导致系统催在缺陷&#xff0c;漏洞 4. 世界各国军方在加紧…

电解电容的参数指标

容量 这个值通常是室温25℃&#xff0c;在一定频率和幅度的交流信号下测得的容量。容量会随着温度、直流电压、交流电压值的变化而改变。 额定电压 施加在电容上的最大直流电压&#xff0c;通常要求降额使用。 例如额定电压是4V&#xff0c;降额到70%使用&#xff0c;最高施…