12.10_黑马数据结构与算法笔记Java

目录

058 链表 e10 判环算法1

thinking:什么是空指针?

058 链表 e10 判环算法2

059 数组 e01 合并有序数组1

059 数组 e01 合并有序数组2

060 队列 链表实现1

061 队列 链表实现2

062 队列 环形数组实现 方法1-1

063 队列 环形数组实现 方法1-2

064 队列 环形数组实现 方法2

065 队列 环形数组实现 方法3-1

066 队列 环形数组实现 方法3-2

067 队列 环形数组实现 方法3-3

068 队列 环形数组实现 方法3-4

069 队列 e01 二叉树层序遍历1

069 队列 e01 二叉树层序遍历2


058 链表 e10 判环算法1

重点理解最后的结合部分:兔子充当乌龟,再走a步,就可以来到环入口。而起点到入口又刚好是a步 

thinking:什么是空指针?

解析Java空指针异常:原因、避免和处理-CSDN博客

因此,这里要加上h.next != null ,因为如果h.next 是null,那h.next.next 就相当于对null执行操作,就会出现空指针异常。

058 链表 e10 判环算法2

 

如果环是起点终点都重合的一个闭合大环,就会出现bug,因此,调整一下代码顺序,先判断乌龟和兔子相遇的时候在不在同一位置,如果在同一位置,说明是闭合大环,说明他们此时此刻的位置就是环的入口,直接返回就好,就不要都各再走一步了。

059 数组 e01 合并有序数组1

 

059 数组 e01 合并有序数组2

 

060 队列 链表实现1

061 队列 链表实现2

如果调用了有参构造,就以指定的容量为准;如果没有调用,那就没有限制,因为我们一开始设置了Integer.MAX_VALUE 

 

 做了以上改动

 

062 队列 环形数组实现 方法1-1

判断空:首尾指针指着一个东西

063 队列 环形数组实现 方法1-2

移动指针,意思是控制最后操作的数组范围是什么。 因为不是整一个圆圈都是有效的数组范围。

064 队列 环形数组实现 方法2

原先的判断满还是空的方法,需要留0给尾指针。但是现在判断是满是空就不用了,因为引用了size这个变量。 

065 队列 环形数组实现 方法3-1

 

左边是新方法,右边是旧方法。

左边:tail不是索引,索引是通过tail计算出来的

右边:tail本身是索引,但后面要马上计算下一个索引的位置

 

066 队列 环形数组实现 方法3-2

将Integer转换成Long型,就可以避免head非常大时候,由正数转换成负数,然后出现bug的现象。

067 队列 环形数组实现 方法3-3

理解:移动后的 1101 就是商,那移没的就是余数,也就是111 

 

可以避免head非常大时候,由正数转换成负数,然后出现bug的现象。这样就可以解决取模运算的性能问题以及符号的问题

虽然tail超过了范围,但是它与其他东西的运算结果没有超过范围就可以了。

而且 数组的最大长度也这个值,数组的尾部减去数组的头部是不可能超过数组的最大长度的。

068 队列 环形数组实现 方法3-4

将非2的n次方数转化为2的n次方

如果给的不是2的n次方,就可以采用这样的方法。

方法一

 方法二

 

方法三

069 队列 e01 二叉树层序遍历1

打印出来,再看看有没有孩子,有就放进去【】里面。 

069 队列 e01 二叉树层序遍历2

想要产生空格,出来的效果像一棵树一样的话,就需要控制它什么时候换行,问题转化成,这一层的节点数有多少个,我要循环多少次才要换行。 

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

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

相关文章

带有 RaspiCam 的 Raspberry Pi 监控和延时摄影摄像机

一、说明 一段时间以来,我一直想构建一个运动激活且具有延时功能的树莓派相机,但从未真正找到我喜欢的案例。我在thingiverse上找到了这个适合树莓派和相机的好案例。它是为特定的鱼眼相机设计的,但从模型来看,我拥有的廉价中国鱼…

【Vulnhub 靶场】【Hackable: III】【简单 - 中等】【20210602】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/hackable-iii,720/ 靶场下载:https://download.vulnhub.com/hackable/hackable3.ova 靶场难度:简单 - 中等 发布日期:2021年06月02日 文件大小:1.6 GB 靶场作者&…

Docker | 自定义网络

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容: Docker | 自定义网络 📚个人知识库: 知识库,欢迎大家访问 1.前言 大家好,我是Leo哥…

当视觉遇到毫米波雷达:自动驾驶的三维目标感知基准

​ 文章:Vision meets mmWave Radar: 3D Object Perception Benchmark for Autonomous Driving 作者: Yizhou Wang, Jen-Hao Cheng, Jui-Te Huang , Sheng-Yao Kuan , Qiqian Fu , Chiming Ni 编辑:点云PCL 欢迎各位加入知识星球,获取PDF…

vector类

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟悉vector库 > 毒鸡汤:从人生低谷…

【面试总结】Java面试题目总结(一)

&#xff08;以下仅为个人见解&#xff0c;如果有误&#xff0c;欢迎大家批评并指出错误&#xff0c;谢谢大家&#xff09; 1.项目中的验证码功能是如何实现的&#xff1f; 第一步&#xff1a;在项目的pom.xml文件中导入 EasyCaptcha 的依赖&#xff1b; <dependency>…

20231207给NanoPC-T4(RK3399)开发板刷Android12的挖掘机方案的LOG

20231207给NanoPC-T4(RK3399)开发板刷Android12的挖掘机方案的LOG 2023/12/7 23:50 SDK&#xff1a;rk356x_android12_220722.tgz 只修改DTS的DTC部分就【直接】可以跑NanoPC-T4 参考资料&#xff1a; http://www.friendlyelec.com.cn/agent.asp http://www.friendlyelec.com.c…

实现安装“自由化”!在Windows 11中如何绕过“您尝试安装的应用程序未通过微软验证”

这篇文章描述了如果你不能安装应用程序,而是当你在Windows 11中看到消息“您尝试安装的应用程序未通过微软验证”时该怎么办。完成这些步骤将取消你安装的应用程序必须经过Microsoft验证的要求。 使用设置应用程序 “设置”应用程序提供了绕过此警告消息的最简单方法,以便你…

python简易学生管理 + MySQL

数据库表 Python代码部分 import pymysqlclass StMgmt(object):def tips(self):"""提示用户选择的操作"""print("""学生管理系统 1.01.查看所有信息2.查看学生信息3.修改学生信息4.增加学生信息5.退出学生系统"""…

【网络安全技术】传输层安全——SSL/TLS

一、TLS位置及架构 TLS建立在传输层TCP/UDP之上&#xff0c;应用层之下。 所以这可以解决一个问题&#xff0c;那就是为什么抓不到HTTP和SMTP包&#xff0c;因为这两个在TLS之上&#xff0c;消息封上应用层的头&#xff0c;下到TLS层&#xff0c;TLS层对上层消息整个做了加密&…

<JavaEE> 经典设计模式之 -- 单例模式(“饿汉模式”和“懒汉模式”实现单例模式)

目录 一、单例模式概述 二、“饿汉模式”实现单例模式 三、“懒汉模式”实现单例模式 3.1 单线程下的“懒汉模式” 3.2 多线程下的“懒汉模式” 一、单例模式概述 1&#xff09;什么是单例模式&#xff1f; 单例模式是一种设计模式。 单例模式可以保证某个类在程序中只存…

【Java数据结构 -- 顺序表】

List和ArrayList与顺序表 一. List1.1 List介绍2.1 常见接口介绍3.1 List的使用 二. ArrayList与顺序表1.线性表2.顺序表2.1 接口的实现2.2 顺序表的创建2.3 顺序表的打印2.4 顺序表的插入2.5 顺序表的按索引位置插入数据2.6 判断顺序表是否包含某个数2.7 返回顺序表某个数的索…

2023-12学习笔记

1.NonNull要手动写无参构造器 这是一个我今天研究了很久的问题&#xff0c;开始不知道原因是在这里&#xff0c;还在那想是不是Data覆盖了无参构造&#xff0c;结果当然不是。先说下解决历程 1.问题起因 通过RequestBody接收前端报文的时候报错&#xff0c;大致是说我构造方…

python中tkinter实现GUI程序:三个实例

python中tkinter实现GUI程序 写在最前面Python中使用Tkinter实现GUI程序的基本元素Tkinter简介基本元素1. 根窗口&#xff08;Root Window&#xff09;2. 小部件&#xff08;Widgets&#xff09;3. 布局管理4. 事件处理 1.用 tkinter实现一个简单的 GUI程序,单击“click”按钮&…

Java项目-瑞吉外卖Day3

填充公共字段&#xff1a; 目的&#xff1a;由于某些属性&#xff0c;例如createdTime这些需要填充的字段会在多个地方出现&#xff0c;所以考虑使用公共字段自动填充的办法减少重复代码。 在对应属性上加入TableField注解。通过fill字段表明策略&#xff0c;是插入/更新的时候…

如何搭建废品上门回收小程序

如今&#xff0c;随着环境保护意识的增强&#xff0c;废品的回收和再利用变得越来越重要。为了方便人们进行废品回收&#xff0c;搭建一个废品上门回收的小程序成为了一个不错的选择。本文将介绍如何从零开始搭建一个废品上门回收小程序。 …

【Go自学版】02-goroutine

利用时间片分割进程&#xff0c;致使宏观上A,B,C同时执行&#xff08;并发&#xff09; CPU利用率包含了执行和切换&#xff0c;进程/线程的数量越多&#xff0c;切换成本也会增大 最大并行数&#xff1a;GOMAXPROCS work stealing: 偷其他队列的G hand off: 当前G1阻塞&#…

css 修改滚动条样式,解决Windows浏览器中滚动条不美观问题

Windows环境中的浏览器中滚动条默认是直接显示了&#xff0c;不管光标是否进入该区域&#xff0c;这样就很不美观&#xff0c;如下图&#xff1a; 之前样式为 .well {display: block;background-color: #f2f2f2;border: 1px solid #ccc;margin: 5px;width: calc(100% - 12px);h…

mycat部署和配置读写分离(二)

说明&#xff1a; MyCAT 是使用 JAVA 语言进行编写开发&#xff0c;使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性&#xff0c;所以要求必须在 JDK7 以上的版本上运行。 1. jdk1.8安装 详见jdk环境安装 2. Mysql安装 详见mysql8.0.11源码安装…

【lesson11】数据类型之string类型

文章目录 数据类型分类string类型set类型测试 enum类型测试 string类型的内容查找找所有女生&#xff08;enum中&#xff09;找爱好有游泳的人&#xff08;set中&#xff09;找到爱好中有足球和篮球的人 数据类型分类 string类型 set类型 说明&#xff1a; set&#xff1a;集…