自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (1)
  • 收藏
  • 关注

原创 【图文详解】浏览器输入URL,涉及到的协议和过程,你看到的最全面的一篇介绍

1、过程详解① DNS 解析:当用户输入一个网址并按下回车键的时候,浏览器获得一个域名,而在实际通信过程中,我们需要的是一个 IP 地址,因此我们需要先把域名转换成相应 IP 地址。【需要DNS地址解析协议】② TCP 连接:浏览器通过 DNS 获取到 Web 服务器真正的 IP 地址后,便向 Web 服务器发起 TCP 连接请求,通过 TCP 三次握手建立好连接。③建立TCP协议时,需要发送数据,发送数据在网络层使用IP协议, 通过IP协议将IP地址封装为IP数据报;然后此时会用到ARP协议,主机

2021-06-24 14:16:15 4119

原创 [0-1背包]解决思路总结----VIVO2021提前批

1.三种背包问题先来回顾一下三个背包问题的定义:01背包:有N件物品和一个容量为V的背包,第i件物品消耗的容量为Ci,价值为Wi,求解放入哪些物品可以使得背包中总价值最大。完全背包:有N种物品和一个容量为V的背包,每种物品都有无限件可用,第i件物品消耗的容量为Ci,价值为Wi,求解放入哪些物品可以使得背包中总价值最大。多重背包:有N种物品和一个容量为V的背包,第i种物品最多有Mi件可用,每件物品消耗的容量为Ci,价值为Wi,求解入哪些物品可以使得背包中总价值最大。给出代码和注释publi

2021-06-18 15:37:13 283

原创 TexMaker使用教程和相关配置

每次使用TexMaker进行论文写作时,不免需要进行多次配置,下面进行简单的介绍,如何使用TexMaker进行论文写作。1.TexMaker+MikTex联合使用TekMaker需要结合MikTex一起使用,如果只下载安装了TexMaker是不会进行成功编译论文的,必须要结合编译器使用,编译器一般有MikTex和Texlive,我使用的是MikTex+TexMaker,首先下载安装MikTex,直接Next点到底,安装的时候记录一下安装的位置,因为后续需要配置TexMaker。2.配置TexMaker

2021-06-12 23:22:06 13637 2

原创 史上最全的超详细理解MVCC(多版本并发控制)

1.介绍MVCC(Multi Version Concurrency Control),中文名是多版本并发控制, MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。简单来说就是通过维护数据历史版本,从而解决并发访问情况下的读一致性问题。2.实现原理它的实现原理主要是依赖记录中的 3个隐式字段,undo日志 ,Read View 来实现的。通常数据库中的每行记录除了我们自定义的字段外,还有数据库隐式

2021-05-25 16:15:15 992 1

原创 解决配置maven后,报错ERROR: JAVA_HOME not found in your environment. Please set the JAVA_HOME variable in yo

1。按照正确的maven配置,配置完环境变量后报错如下:错误:ERROR: JAVA_HOME not found in your environment.Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation原因分析:你的系统环境变量中不存在 JAVA_HOME解决办法:在系统的环境变量中添加 JAVA_HOME;如下图所示再次打开cmd,执行m

2021-05-24 16:20:50 7726

原创 图文详解什么是LDAP(轻量目录访问协议)---安装和使用教程

1、介绍LDAP是轻量目录访问协议,英文全称是LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL,一般都简称为LDAP1、读写效率非常高对读操作进行优化的一种数据库,在读写比例大于7比1的情况下,LDAP会体现出极高的性能。这个特性正适合了身份认证的需要。2、开放的标准协议不同于SQL数据库,LDAP的客户端是跨平台的,并且对几乎所有的程序语言都有标准的API接口。即使是改变了LDAP数据库产品的提供厂商,开发人员也不用担心需要修改程序才能适应新的数据库产品。这个优势是使用

2021-05-17 15:53:09 3792

原创 Apache Directory Studio安装和使用教程

1.简介网上的Apache Directory Studio教程基本都是千篇一律,没有一个详细的教程介绍。自己在不断的摸索过程中,试了许多方法,终于解决了Apache Directory Studio连接LDAP服务的方法。下面进行总结。2.步骤第一步,安装完软件之后,点击LDAP,开始进行连接第二部,点击connection,Connection Name自己随便起一个,Hostname为你开启docker的服务器ip,选好之后,可以点击Check Network parameter,如果显示成

2021-05-17 15:10:24 5205 4

原创 详解Java中外部类和内部类的区别和联系

什么是内部类?内部类是定义在一个中的类,有一种嵌套的意思。包含内部类的类被称为外部类。外部类通常使用public修饰,极少情况下使用default修饰;内部类通常使用private修饰,表示私有;外部类可以访问内部类的所有方法和属性;...

2021-05-14 11:28:19 419

原创 【图文详解】TortoiseSVN 安装教程和基本使用操作

一、介绍Apache Subversive通常被缩写为SVN,采用了分支管理系统,是一种中央式的代码版本控制系统,这个系统会记录每一次的修改,当有需要的时候,可以将代码库恢复到旧版本。二、基本操作和概念1)、repository(源代码库):存放源代码的地方2)、Checkout(提取):从repository源代码库checkout一份代码到本地。3)Commit(提交):完成代码修改之后,commit到repository。4)Update(更新):当你本地已经从repository源代码库

2021-05-13 11:53:41 804

原创 【图文详解】Git安装使用教程和常见命令归纳总结

一、Git简介Git是一个分布式代码管理工具,和他对应的是中央式代码管理工具如SVN;分布式:可以直接在本地提交,不需要依赖网络,并且会将每次的提交自动备份到本地。每个开发者都可以将远程的仓库clone一份到本地,并且可以clone提交的历史记录。中央式:所有的代码保存在远程的服务器,提交必须依靠网络,每次提交都会push到中央仓库,如果是协同开发会频繁触发代码合并,增加提交的成本和代价;二、Git中的文件状态在Git中文件分为三种状态:已修改(modified)、已暂存(staged)、已提交(

2021-05-12 19:11:20 147

原创 arthas下载安装和启动问题-----Can not find java process.Try to pass <pid> in command line.

Arthas介绍当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什么办法可以监控到JVM的实时运行状态?怎么快速定位应用的热点,生成火焰图?Arthas支持

2021-05-12 14:34:12 2983

原创 【图文详解】深入理解JVM垃圾回收机制以及垃圾收集器与内存分配策略

1.前言Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的围墙,墙外面的的人想进去,墙里面的人想出来。—《深入理解Java虚拟机》2.概述首先我们需要理解我们为什么需要理解垃圾回收和内存分配策略,Java经过这么多年的发展,相关的技术已经相当成熟,那我们为何还要去了解垃圾回收呢?原因很简单,当我们需要排查各种内存泄漏和内存溢出问题时,或者当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些技术实施必要的管理和调节,如果你不熟悉和了解,那么它就会阻碍你程序性能的提升。3.哪些内存需要

2021-05-10 18:32:50 176

原创 详解Java中的equals和hashCode()覆写 --->覆写equals必须要覆写hashcode吗?

1.元素的比较hashCode和equals用来标识对象,两个方法可以协同工作来判断两个对象是否相等。对象通过调用Object.hashCode()生成哈希值,根据生成的哈希将数据散列开。由于任意两个对象对存在哈希值相等导致哈希冲突,因此需要调用equals方法进行值的比较。如果hashCode不相等,那么,两个对象肯定不同,可以加快处理冲突的效率,如果hashCode相等,再进一步使用equals判断;Object类定义中对hashCode和equals有如下要求:如果两个对象的equals的结

2021-05-08 13:55:48 380

原创 【图文详解】Java虚拟机内存管理

1. 概述对于C、C++程序员来说,在内存管理领域,他们有着绝对的话语权,但是他们也是底层的劳动人民。即他们有着对象的所有权,但是也要负责每一个对象的开始到结束。对Java程序员来说,在虚拟机自动内存管理机制下,他们不需要再手动的为每一个new操作去写对应的清空操作,也不容易出现内存泄漏和内存溢出问题,但是一旦出现这类问题,如果不了解虚拟机的工作方式,那么将会是灾难性的。2.运行时数据区域Java虚拟机在执行Java程序的时候,会将它所管理的内存划分为若干个不同的数据区域。每个区域的作用各不相同。有

2021-05-07 20:19:18 175 1

原创 【图文详解】总结TCP四次挥手机制原理,为什么需要四次挥手,2MSL有什么意义?

一、什么是四次挥手?四次挥手即 TCP 连接的释放,这里假设客户端主动释放连接。在挥手之前主动释放连接的客户端结束 ESTABLISHED 阶段,随后开始四次挥手。首先客户端向服务端发送一段TCP报文表明想要释放TCP连接,其中:首先客户端向服务端发送一段TCP报文,表示想要释放TCP连接,其中:标志位为FIN(表示请求释放连接),序号Seq=u;随后客户端进入FIN-WAIT-1阶段,即半关闭阶段,并且停止向服务端发送通信数据;服务端接收到客户端请求断开连接的FIN报文后,结束EST.

2021-04-30 17:06:17 3735

原创 【图文超详解】TCP三次握手机制,为什么两次不行?

什么是传输层?传输层是计算机网络OSI模型中的第四层,在传输层中定义了两个最主要的协议TCP和UDP协议;传输层的主要任务是为两台主机进程之间的通信提供服务。应用程序利用该服务传送应用层报文。该服务并不针对某一特定的应用,多种应用可以使用同一个传输层服务。由于一台主机可同时运行多个线程,因此传输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面传输层的服务,分用和复用相反,是传输层把收到的信息分别交付上面应用层中的相应进程。传输层定义了两个主要协议:传输控制协议(TCP)和用户数据报协议(

2021-04-30 11:01:23 3670 3

原创 目标跟踪PR,SR的python代码—PR,SR画图工具

1.p_norm脚本#只需修改路径 line182,line183import numpy as npfrom matplotlib import pyplot as pltimport matplotlibimport osfrom scipy.interpolate import make_interp_splinefrom scipy.integrate import simpsimport scipyimport mathfrom numpy import trapzimpo

2021-04-30 09:36:55 1288

原创 你知道的MySQL的索引类型,并分别简述一下各自的场景?

普通索引:没有任何限制条件的索引,该索引可以在任何数据类型中创建。唯一索引:使用UNIQUE参数可以设置唯一索引。创建该索引时,索引列的值必须唯一,但允许有空值。通过唯一索引,用户可以快速地定位某条记录,主键索引是一种特殊的唯一索引。 如果是组合索引,则列值的组合必须唯一。【主键索引 是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引】复合索引(联合索引): 指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循

2021-04-30 09:26:35 257

原创 MySQL建索引需要遵循哪些原则呢

1.选择唯一性索引唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。b经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。如果为其建立索引,可以有效地避免排序操作。3.为常作为查询条件的字段建立索引如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速度。因此,为这样的

2021-04-30 09:24:32 159

原创 KMP算法图文超详细剖析,附例题实战演练以及代码

当你看到这个问题的时候,说明你已经领先了部分人!!!话不多说,先来一道题目!LeetCode #21给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。解析:此题可以使用暴力直接解,在haystack上面以此遍历,时间复杂度最差为O((m-n)*n);另外一种解法就是使用KMP算法,在介绍KMP算法之前,我们稍微分析一下上面的暴力解,如果你深入思考上面这一道题目,你会发

2021-04-29 21:01:42 735

原创 一句话理解Java继承,你不懂算我输!

1.继承的定义继承就是使用已经存在的类作为基础,在此基础上建立新类的技术,新类可以增加自己的独有的数据以及方法功能,同时也可以使用父类的方法功能。(父类的private除外)2.继承的注意点你可以有多个子类,但是你不能有多个父类,简单来说,你可以有多个孩子,但是你不能有多个爸爸。子类抛出的异常必须是父类异常的子类异常,例如:父类抛出IOException异常,子类不能抛出Exception异常,因为IOException是Exception的子类。3.Java学习任重道远,继承的简单...

2021-04-27 17:05:39 131

原创 【图文详解】HashMap底层数据结构总结归纳,附常见HashMap面试题。

这篇文章全自己手码,写的过程中也参考了不少教程,文后也会给出。HashMap在Java中属于集合一类,集合是Java基础核心内容,而在集合中,集合又分为Collections和Map,本文的HashMap就是Map中的一个重点和难点。如果你认为HashMap比较简单,那么你可能对HashMap的认识还不够深入,打个比方,问:为什么HashMap中数组的长度一定是2的次幂?看完本篇内容,希望你能够对HashMap有一个全新的认识;本文的脉络是从底层数据结构进行分析,遇到问题,我们再深入探讨,采取深度优先

2021-04-27 15:15:14 873

原创 为什么B+树比B树更适合做数据库索引?

B+树更适合外部存储。由于内结点不存放真正的数据(只是存放其子树的最大或最小的关键字,作为索引),一个结点可以存储更多的关键字,每个结点能索引的范围更大更精确,也意味着B+树单次磁盘IO的信息量大于B树,I/O的次数相对减少。MySQL是一种关系型数据库,区间访问是常见的一种情况,B+树叶结点增加的链指针,加强了区间访问性,可使用在区间查询的场景;而使用B树则无法进行区间查找。数据库索引采用B+树的主要原因是B树在提高了磁盘IO性能的同时并没有解决元素遍历的效率低下的问题。正是为了解决这个问..

2021-04-22 16:47:08 403

原创 为什么平衡二叉树不适合作为索引

索引是存在于索引文件中,是一种数据结构,存在于磁盘中的。因为索引通常是很大的,因此无法一次将全部索引加载到内存当中,因此每次只能从磁盘中读取一个磁盘页的数据到内存中。而这个磁盘的读取的速度较内存中的读取速度而言是差了好几个级别。平衡二叉树结构,指的是逻辑结构上的平衡二叉树,其物理实现是数组。然后由于在逻辑结构上相近的节点在物理结构上可能会差很远。因此,每次读取的磁盘页的数据中有许多是用不上的。因此,查找过程中要进行许多次的磁盘读取操作。而适合作为索引的结构应该是尽可能少的执行磁盘IO操作,因..

2021-04-22 16:45:20 393

原创 计算机网络面试必问必会知识点,涵盖计网90%问题,两万一千字总结;

开放式系统互联模型(英语:Open System Interconnection Model,缩写:OSI;简称为OSI模型)是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISO/IEC 7498-1。该模型将通信系统中的数据流划分为七个层,标有1~7,第1层在底部。 每个中间层为其上一层提供功能,其自身功能则由其下一层提供。功能的类别通过标准的通信协议在软件中实现。第1层 物理层:作为 OSI 参考模型中最低的一层,物理层的作用是实现计算机节点之间

2021-04-19 10:36:52 1200 1

转载 Redis的底层数据结构之SDS,链表,字典,跳跃表,整数集合,压缩列表

深入了解Redis底层数据结构说明说到Redis的数据结构,我们大概会很快想到Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set),以及他们的特点和运用场景。不过它们是Redis对外暴露的数据结构,用于API的操作,而组成它们的底层基础数据结构又是什么呢?简单动态字符串(SDS)链表字典跳跃表整数集合压缩列表Redis的GitHub地址github.com/antirez/red…简单动态字符串(SDS

2021-04-14 14:27:10 212

原创 Redis Desktop Manager的下载及安装,免费

1. 下载链接百度云盘提取密码:wt462.安装教程傻瓜式安装,,点下一步即可3.连接服务器hosts必填,名字自己起一个个性点的就行,密码需要看你服务器有没有密码

2021-04-13 18:44:53 4318

原创 MySQL5.7通过压缩包直接安装(没有点击下一步)详细教程,亲测有效

第四步中,编辑ini文件时,如果发现目录中不存在data文件夹,不要手动自己建立。目录中最后的""不要弄丢了。第六步初始化数据完成之后,会出现data文件夹,那么恭喜,初始化成功!

2021-04-02 09:36:50 133

原创 插入排序--图文演示,基于Java代码实现,附每一步的详细注释

1.什么是插入排序。理解一:给定一组元素,长度大小为n,从索引为1的位置开始,每次从已经排序好的序列往前查找,找到第一个比当前元素小的元素,将当前元素插入其后。若被查找元素比当前的元素大,则被查找的元素后移。将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。理解二:从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)说的再多,不如撸代码public clas.

2021-04-01 19:50:13 163

原创 【图文详解】手把手教你快速排序,基于Java代码实现,附每一步的详细注释

1什么是快速排序?首先选择一个基准值,通常是第一个数,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比基准值大,另外一部分的所有数据都比基准值要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。从上述文字中,有一定基础的同学可以看出有一定的分治思想,其实快排就是分治加挖坑,为何public class QuickSort {}...

2021-04-01 12:33:36 197

原创 【剑指offer】栈的压入,弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)这一题首先要考虑如何设置一个循环条件。显然,必须要遍历pushA数组。import java.util.ArrayList;import java.util.*;public class So

2021-03-31 11:02:08 54

原创 MySQL数据库重点知识点总结归纳。10分钟了解MySQL

主键:对于关系表,有个很重要的约束,就是任意两条记录不能重复。不能重复不是指两条记录不完全相同,而是指能够通过某个字段唯一区分出不同的记录,这个字段被称为主键。主键也不允许使用NULL。选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。联合主键关系数据库实际上还允许通过多个字段唯一标识记录,即两个或更多的字段都设置为主键,这种主键被称为联合主键。外键在一个表中,通过非主键的另外一个字段,可以将数据和另一张表链接起来,这种列称为外键。通过定义外键约束,关系数据库可以保证无法插..

2021-03-31 09:12:13 359

原创 WIN10安装最新版MySQL-8.0.23详细教程 附发生系统错误 5 拒绝访问解决方法

打开这个网页https://dev.mysql.com/downloads/mysql/选择图中红色的框,第二个是离线安装,第一个是在线,我们选择第二个3.下载完成后是这样的图标双击打开安装,这里选择最下面的Custom。点开图中的加号,因为我安装过了,拿的是别人的图片,但是不影响,这里选择8.0.23版本,再点击绿色的右箭头这里的3306是端口号,记住就行,不用管,后面是输入密码,建议是123456这里设置不开机启动,以及为自己的MySQL命名。自己选一个就行,后面一直选择下一步,.

2021-03-30 21:12:33 987

原创 小白也能看的懂的SpringBoot自动装配详解

1.SpringBoot的特点1.1依赖管理父项目做依赖管理依赖管理 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version></par

2021-03-29 20:19:41 128

原创 Java中的Bean原理详解

什么是Java中的Bean?JavaBean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去。所有遵循“一定编程原则”的Java类都可以被称作JavaBean,Bean的中文含义是“豆子”JavaBean是一个遵循特定写法的Java类,是一种Java语言编写的可重用组件,它的方法命名,构造及行为必须符合特定的约定:1、这个类必须具有一个公共的(public)无参构造函数;2、所有属性私有化(private);3、私有化的属性必须通

2021-03-29 19:51:24 1287

原创 超简单易懂的缓存穿透,缓存击穿,缓存雪崩。

1.缓存穿透1.1什么是缓存穿透?简单的理解就是查询一个数据库一定不存在的数据。因为缓存中没有该数据,所以所有的查询全部指向数据库,数据库承受不住,容易崩溃。(注:正常使用缓存的方式是,查询数据先进行缓存查询,缓存中数据不存在,或者数据过期,再对数据库进行查询,并把查询到的对象放入缓存。如果不存在,则不放。)解决办法:(1)使用布隆过滤器如果不懂可以直接把布隆过滤器理解为一个可以快速查询数据库中是否存在该数据的工具(2)缓存空对象当查询到数据不存在时,返回一个空值给缓存Redis。(做一个标

2021-03-29 14:00:29 170

原创 【剑指offer #11】二进制中1的个数 Java代码

题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。解析:本题采用二进制数减1 与原数做与运算public class Solution { public int NumberOf1(int n) { int sum=0; while(n!=0){ n=n&(n-1); sum=sum+1; } return sum; }}...

2021-03-29 13:29:11 57

原创 刷完剑指offer,相关知识点总结归纳,避坑。

str.str.trim() 删除字符串首尾空白符;char[ ] arr=str.toCharArray( ); 字符串转化为字符数组;ASCII码中48~57为0到9十个阿拉伯数字。C>=’0’ && C<=’9’ 判断字符C是否为数字;字符串为空或者字符串为0是需要进行判断的。if(str==null || str.length() == 0)return -1;字符串str长度判断 str.length>0数组array长度判断 for(int i

2021-03-26 14:23:46 91

原创 【剑指offer#22】从上往下打印二叉树--Java代码

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。考察队列的使用Queue queue =new LinkedList<>();树的初始化:public class TreeNode(){ int val; TreeNode left=null; TreeNode right=null; public TreeNode(int val){ this.val=val; }}import java.util.ArrayList;import ja

2021-03-25 09:30:20 53

原创 【剑指offer#17】树的子结构--Java代码

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解析:本题考虑递归,一般情况下,考察树的代码,大多数都是使用递归法解答。/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}

2021-03-24 10:32:48 57

MySQL讲义资料,包含事务部分

观看B站视频的MySQL视频时,适合同步观看的讲义

2021-04-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除