自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员大航子

程序员大航子 | 关注我不迷路

  • 博客(247)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 接口前置数据处理方案

切面

2023-06-30 16:44:52 401 1

原创 刷穿力扣 | 最大正方形

最大正方形

2022-09-27 23:09:02 576 1

原创 刷穿力扣 | 2. 两数相加

龙哥,你学废了吗?

2022-01-11 19:26:38 722 1

原创 刷穿力扣 | 437. 路径总和 III(一道很多细节的算法题)

元旦做了一个决定,算法是我必须要深入的一门手艺,所以我会要求自己,坚持刷题,而且难题一定要抽出时间死磕。题目原题链接:点击这里难度:中等思路这道题,说老实话,上来我的思路就很明确,dfs就能解,并且在白板上两分钟就截了出来。但是我知道这一定不是最优解,很遗憾,我没能自己想出最优解,看了解题很久才明白过来,这是一道很有技巧的算法题,这里会把两种解法都贴出来,dfs和前缀和。所谓dfs暴力解法,就是穷举所有节点为路径和的初始节点,然后向下递归,每一个节点作为路径和的初始节点有多少满足情况的,再.

2022-01-05 01:45:05 414

原创 刷穿力扣 | 390. 消除游戏

题目原题目地址传送难度:中等思路这道题,一上来肯定很多人都在想直接按照题目的意思开始操作,构建一个集合,然后正着遍历,删除1、3、5… 然后倒着遍历,删除删除1、3、5… 这样做当然是可以的,但是可能会超时。其实,我们主要想获取的元素,就是最后剩下的那一个元素,这个元素最后必然是数组中唯一的一个元素,并且索引值为0,我们只需要跟随着删除的步伐,不断的确定下一次删除操作,数组中剩余的那个起始元素是什么就好了,直到数组中只剩下一个元素,就把这个元素返回就好了。(这里我们把一次整体的删除操作叫做一次删

2022-01-02 18:04:53 4717

原创 将一维数组转变成二维数组,力扣2022第一题,祝大家新年快乐

力扣2022开年第一题,祝大家新年开心快乐!

2022-01-01 22:46:17 559

原创 史上最强优先级队列教程PriorityQueue、DelayedWorkQueue

写这篇文章的目的是,我们寝室大哥,龙哥正在培训java,为了让龙哥更好的理解堆这个数据结构的内容,模拟他以后面试经历的场景。面试经过面试官: 你好,欢迎再次参加面试,几天不见,感觉头发又少了呢?龙哥: 本来头发就少,又当了程序员,哎。面试官: 我们回归正题,上回说到ScheduledThreadPoolExecutor,那ScheduledThreadPoolExecutor里面用的什么阻塞队列?龙哥: 这个说起来就有点复杂了,首先我们通过ScheduledThreadPoolExecuto.

2021-10-31 20:12:01 3281 4

原创 史上最强HashMap面试教程

前言写这篇文章的目的是因为我大学四年的室友,龙哥在培训java,刚好最近学习HashMap,于是我写一篇文章来模拟他以后面试被问到HashMap的场景;另外就是因为HashMap的使用确实广泛,深受面试官的喜爱,大厂的面试官也有很多会用HashMap来考察你的基础到底如何。面试经过**面试官:**我们开始吧,看发型就知道是老程序员了,自我介绍一下吧。**龙哥:**我叫龙哥,刚过完三十大寿。平时喜欢打篮球,优势是身体好,可以996。**面试官:**嗯,还不错嘛。都30了,集合框架肯定熟悉吧,我们先

2021-10-27 18:35:10 87347 14

原创 程序员入门应不应该去培训结构(文末有惊喜)

为什么写这篇文章呢?因为我四年的室友,我们寝大哥最近去千锋培训了,而且现在互联网研发刚被腾讯应届生入职即40w年薪刷屏了。话说,其他行业想要达到这个薪资估计是相当不容易的,程序员这个新时代的农民工作似乎成了高薪的代名词,甚至有人还建议打压程序员的工资。在这么高的薪水诱惑下,我想有很多即将毕业,或者不满足于现在的工作岗位的人,或多或少都曾想过是不是也可以成为程序员,拿到年薪几十万的薪水,岂不美滋滋。试试也是,现在似乎程序员的门槛越来越低,学历本科、大专,经过几个月的自学或者培训,再封装一下工作经验,

2021-10-19 21:02:26 980 1

原创 史上最牛逼的synchronized教程来了,建议收藏

为什么需要锁:因为存在临界资源,所谓临界资源,就是统一时间只能有一个在操作的资源,比如打印机,如果同时执行多个打印任务就会错乱,临界资源在程序中就是同一时间只有一个进程或者线程访问的资源,那么怎么怎么保证统一时间只有一个线程访问了,就是加锁。如以下这段代码,size变量就是临界资源,正常情况下,程序执行结果,size的值应该是10000,但是实际的结果会是一个小于10000的值,这就是没有加锁造成的线程安全问题。import java.util.ArrayList;import java.util

2021-10-14 23:26:57 1127

原创 很少见到有人把线程池讲的这么明白的,建议收藏

概念:“线程池”,就是一组线程的缓存,在运行的系统中,线程是一个比较宝贵的资源,如果无限制的创建,会降低系统额问题性,所以Java给出线程池,来对线程进行统一的分配,调优和监控。​为什么要使用线程池:重用存在的线程,减少线程创建,消亡的开销,提高性能 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。Executor是java中线程池

2021-10-04 20:45:42 1386

原创 大白话讲明白什么是IOC

起因今天一个在北京的朋友说他今天面试的时候被问到了什么是IOC,用一句话说明IOC主要解决了什么事?相信只要从事的是JAVA行业的人,天天和面向对象打交道,说起IOC或多或少都能整几句。我那个朋友也是说控制翻转啊,依赖啊,Spring的两大特性之一啊,最后面试官打断了回答进行了下一个问题。我不知道面试官想要的标准答案是什么,如果让我回答这个问题的,我可能就会说【解耦】。详解说起面向对象设计的原件系统,我们可能第一反应就是在代码中有着无数的【对象】,承载着系统的不同功能。那么在我们的代码中,每一个对象

2021-09-13 00:16:17 1317

原创 bio/aio/nio以及多路复用器

bio/nio/aio先看一下这三种的名词解释。bio:同步阻塞io;nio:同步非阻塞io;aio:异步非阻塞io;通过解释之后,引申出几个概念,什么是同步与异步,什么是阻塞与非阻塞。同步就是需要自己去监听事件是佛欧有返回结果,而异步是其他线程去做这件事。阻塞的意思的,比如在bio中,我调用了accept方法,会一直阻塞在这里,直到有连接事件发生,这种酒属于阻塞事件,非阻塞就是在nio中我们调用accept方法,会马上返回结果,线程可以去处理其他事情,这就是非阻塞。bio模型:nio模

2021-06-27 16:03:49 803

原创 计算机的重要组成部分

看了比尔盖茨对计算机的概述,总结起来,计算机能干的事情总结起来只有四个。接受输入的信息。存储信息。计算信息。输出信息。

2021-06-17 00:55:54 284

原创 MVCC是怎么一回事

首先,我们要知道MVVC是什么?我们都知道Mysql有四种事务隔离级别,读未提交、读已提交、可重复读和串行化,默认的是可重复读。所谓的事务隔离级别,其实就是不同事物在各自独立运行的时候所受其他事务的影响程度。读未提交:就是可以读取到其他事务还没有提交的数据。读已提交:就是可以读取到对方已经提交的数据。可重复读:就是在一个事务中,主要第一次读取出来的是一个数值,那么无论其他事务怎么修改,之后读取的还是这个数值。串行化:就是就算有新增的记录,你读取的还是不变(所谓幻读)。那么这是怎么实现的呢,串行化

2021-06-11 09:50:11 781 3

原创 一条SQL在Mysql中是如何执行的

不知道大家有没有想过一个问题,我们一条sql从客户端提交给Mysql,中间经过了什么,最后才能查出结果呢?首先,我们接触最多应该就是Mysql的客户端了,比如我们的JDBC,还有navicat,mysql工作台等等,这些客户端内部会帮我们发送sql到Mysql服务端,那么又是怎么操作的呢?这张图大体画出了我们的sql是怎么运行的,怎么样?是不是Mysql比我们想象中要做的多。连接器首先,数据库有一个连接器,那么这个连接器是做什么用的呢?我们客户端要想和Mysql服务端进行交互就必须要建立连接,这个

2021-06-09 21:33:37 396 2

原创 Mysql - 聚簇索引和辅助索引

聚簇索引和辅助索引聚簇索引:数据是存放在叶子节点上。辅助索引:叶子节点上是不存放真实数据的,而是存放聚簇索引的索引值。首先说明一下,聚簇索引和辅助索引都是B+树的结构,区别就是叶子节点上是否存放真实的数据。那么为什么有这个区分呢。其实也很好理解,我们都知道,Mysql中的每一个索引都是一颗B+树来存储的,如果我每一颗B+树的叶子节点上面都存储数据的话,这个空间的要求是不是很大呢?当然,也可以所有的索引都不存储真实的数据,都存储指向真实数据的索引,这是MyISAM存储引擎的做法。在Innodb存储引擎

2021-06-07 12:26:50 2514 3

原创 Mysql的存储结构 - B+树

一次真实的美团面试经历那么,我们来看一次笔者的一次真实美团面试,面试官关于Mysql的数据结构的提问。面试官:Mysql的底层数据结构有了解过么?帅航:有,是B+树。面试官:为什么是B+树呢,刚才说到HashMap用的哈希表,红黑树查询效率都挺高的,为什么Mysql不用呢?帅航:哈希表的一次查询是很快,但是范围查询就很搓了;至于红黑树的话,由于二叉树的特性,数据量太大的情况下,树会很高,由于数据是存储在磁盘上的,这样与磁盘的IO会很频繁,是不可以接受的。所以选择B+树。面试官:那树高的

2021-06-07 00:39:15 5816 3

原创 实现一把可靠的分布式锁要考虑什么

实现一把可靠的分布式锁在这种分布式应用、中间件盛行的时代,我相信对于开发同学来讲,分布式锁不会是一个陌生的概念。那么怎么样能用Redis实现一把合格的分布式锁呢?一般使用Redis实现分布式锁,都是利用Redis是第三方中间件的特性,用来实现一把适用于分布式场景的锁。通过这个方法,如果Redis数据库中没有这个键的话就设置成功,就是获取到了锁;如果有这个键的话就是设置失败,就没有获取到锁。SETNX key value然后,在完成业务代码之后删除这段代码,删除这个key,释放锁。为了保证我们就

2021-05-30 23:19:42 459 1

原创 详解优先级队列

优先级队列优先级队列,这个数据结构可以理解为一个箱子,给定一个比较的规则,然后比较的比较有限的元素,会沉的比较下面,当要取出一个元素的时候,最上面的元素就会率先被取出来。举个例子。public static void main(String[] args) { PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(((o1, o2) -> o2 - o1)); priorityQueue.o

2021-05-20 22:58:12 2451 3

原创 二叉搜索树的完整操作

二叉搜索树的完整操作引言二叉搜索树,又叫二叉查找树(Binary Search Tree);请问你思考过没有?有了哈希表,为什么我们还需要二叉树?其中最主要的一个原因,就是哈希表如果要按照顺序输出的时候,就比较麻烦,而二叉树的特殊形态,二叉搜索树就比较简单了,只需要中序遍历就好了。而hashmap的底层红黑树其实也是一种特殊的二叉搜索树;也许有的同学很想啃下来红黑树,当面试的时候面试官问起hashmap源码的时候做到游刃有余,那么二叉搜索树算是前面的一个小BOSS。什么是二叉搜索树二叉搜索树是

2021-05-19 23:58:22 830 2

原创 一文击穿几数之和系列问题

一文击穿几数之和系列问题最近又朋友和我分享他们的大厂面试算法题的时候,我发现其实有很多题多是考察双指针的,所以双指针这块的题应该重点掌握一下,双指针大概用法有类似快慢指针来求中点或者环状问题,另外一部分的左右指针,n数之和就是经典的题目中的经典题目。二数之和题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

2021-05-10 23:23:25 219

原创 你真的会二分查找算法么

引子我记得我在京东的时候,面试过大概10个候选人,当我问到算法的时候,大部分人说我只会写简单的排序算法和二分查找之类的算法。其实,我先不说排序算法就有十多种,二分查找,你确定你真的会么?原理很简单,细节是魔鬼。详解所谓二分查找算法是针对一个排序数组的,因为数组有顺序且有固定的索引,所以你可以运用这种折半查找的算法,它的原理有点类似我们玩的一种猜数字的游戏。就是我心中默想一个数字,你说一个数,我告诉你是大了还是小了,那么怎么猜效率才最高呢?那就是每次取中间的数猜,一次就排出掉剩余答案的一半,这样就

2021-05-07 12:52:43 382 2

原创 Redis底层数据结构详解

Redis底层数据结构详解我们知道Redis常用的数据结构有五种,String、List、Hash、Set、ZSet,其他的集中数据结构基本上也是用这吴红实现的,那么,这五种是Redis提供给你的数据结构,这五种数据结构式怎么实现的,你知道么?底层的底层,你有了解过吗?这些是五种数据结构底层使用的数据结构,我们可以看到,有很多底层使用了两种数据结构,比如set在元素较少,且都是数字的情况下会使用整数列表,数据增加会变成哈希表。那么这些底层的数据结构,你又了解多少呢?这个问题我们先放一下,你有没有一个

2021-05-06 23:37:39 10444 1

原创 Redis中的跳表是怎么回事

引子早些年笔者一次真实的美团面试经历。面试官:请问Redis有哪些数据结构?我:string、hash、list、set、zset、 bitmaps、hyperloglogs、geospatial、布隆过滤器。面试官:zset主要用什么应用场景?我:zset主要是一种有权重的set集合,因为每一个元素都可以有一个“分数”,redis提供了根据这个分数操作的api,比如取分数前几的啊,所以我们可以用作一些类似于排行榜的东西,比如点赞次数前几名的啦,,叭叭叭。面试官:嗯,,,那它的底层的数据结构

2021-05-06 00:07:48 3637 7

原创 布隆过滤器完全解读

布隆过滤器什么是布隆过滤器?布隆过滤器,可以理解成一种数据结构,这种数据结构可以用最小的内存空间,返回一个元素是否存在,但是有极小的误差,就是它说不存在,就一定不存在,它说存在,有很小的概率也是不存在的。布隆过滤器的实现原理布隆过滤器内部实现了一个很长的bit数组,你可能会说,既然很长,为什么占用的空间会很少的呢?一个bit位其实很小很小,比较8个bit才一个byte,1024个byte才1KB,1024KB才一个1M。然后布隆过滤器内部会维护很多hash函数,调用这些哈希函数会返回在这个bit

2021-05-04 00:22:54 692 1

原创 缓存雪崩、穿透、击穿

缓存雪崩、穿透、击穿这三个问题基本上是问道Redis必问的三个问题,因为一旦发生,就会是很大的生产事故,所以我们有必要了解一下发生的原因,和解决的方法。缓存雪崩什么是缓存雪崩?就比如,淘宝的首页的商品,我们都是放到缓存中的。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BSAzhKVn-1620036821998)(C:\Users\win10\AppData\Roaming\Typora\typora-user-images\image-20210503165

2021-05-03 18:14:05 334 6

原创 排序算法?我可以手写十种

十大排序经典的十大排序算法,分别是:冒泡排序选择排序插入排序希尔排序归并排序快速排序堆排序计数排序桶排序基数排序有人说这有什么用,不如直接一个类库的Arrays.sort()直接解决了,我想说的,学习排序算法主要是学习里面的思想,我的建议是,归并、快速和堆排序是无论如何都要掌握的,剩下的你可以只做了解。文章中的动图摘自网络,如有侵权,请联系删除冒泡排序思路这可能是所有程序员都最熟悉的一种排序方式,主要思想就是,从第一个元素开始,和第二个元素比较大小,如果比后面的元素

2021-05-03 15:22:08 457 2

原创 荷兰国旗问题

引子我在北京的一个现任职京东零售的一个朋友,最近投了阿里巴巴的简历,面试官一面就考察了一道算法题,我与他交流了一下,发现一道荷兰国旗的问题。假如有一个数组,里面的元素由红、白、蓝三个颜色组成,请你写出一个算法,使数组的元素按照红、白、蓝顺序分布。至于为什么叫荷兰国旗,你对比一下,荷兰国旗的三色分布就知道了。遗憾的是,我这个朋友没有答出来,于是和阿里失之交臂。思路见到这种题,首先第一反应就是是不是能在一次遍历搞定,就是时间复杂度在O(n)解决。先把这个问题简单化一点,如果这个数组只有两个颜色

2021-04-27 17:41:31 500 1

原创 刚入职的阿里巴巴,我是怎么学习算法的

先自我介绍一下,我是一个在94年的互联网苟且偷生的打工人,目前就职于阿里巴巴,学习算法大概有两年多时间。我身边有很多朋友或是读者都在询问我算法应该怎么入门,毕竟不管你喜欢不喜欢,进大厂估计每一个程序员都或多或少想过或者向往过这些事,毕竟动辄几万的月薪是一般普通公司给不起的,而大厂面试,面试官尤其爱拷问算法,这是一个摆脱不了的事情​。而算法对于某些同学来说,看起来就好像遥不可及的一样,我身边的朋友大部分都知道算法的重要性,可就是不知道从何入手​。久而久之,死活是​迈不进那道门。据我了解,大部分人开始

2021-04-17 13:23:12 499 9

原创 一文团灭打家劫舍系列面试题

​小龙是一个资深程序员,年纪轻轻头发就凋零不堪了,看到身边的朋友们在大厂一个个拿到了高薪,决定出去面试看看,毕竟看发型咱就是资深程序员不是…这不,马上就迎来了一家国内某大厂的面试邀请,小龙怀着忐忑的心情复习了一周,走进了面试的会议室,咦,,,这个面试官好凶,,不会问一些有的没的吧面试官:**龙是吧?说说你的经历。小龙:你好,面试官,我叫**龙,巴拉巴拉…很希望能加入咱们公司。面试官:嗯,你还没30,怎么看着和40似的。小龙:额,平时敲代码熬夜比较多,嗯… 买买皮。面试官:好,那么我

2021-04-15 22:43:37 280 1

原创 一文讲懂前缀树

前缀树什么是前缀树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。— 摘自百度所谓前缀树,顾名思义就是前缀组成的树,比如我们在百度的时候输入java就会出现很多以java开头的词语,这就是前缀树的典型应用。前缀树组成举个例子,我们现在有apple、apache、app、o

2021-04-15 01:04:45 822

原创 select *和select全部字段的区别是什么

借鉴自boss直聘上一篇推荐文章1、查询效率上:select * 在系统解析的时候会多一步从系统表获取具体字段的步骤,因此会比select 全部字段多花时间,效率稍低。2、查询结果上:在表结构不修改的情况下结果相同,但是后者的顺序可以调整,前者则固定;而如果修改了表结构,前者能够获得新表结构的所有字段,后者则会在修改字段名或删除字段时报错,会在增加字段时不会输出新字段。3、应用场景上:select * 效率稍低但是能应对频繁调整的表结构,适应力强,可应用于开发环境,仅极少数特殊业务场景会在生产环境.

2021-03-16 15:43:05 10760 3

原创 【力扣刷题】最长回文子串

【力扣刷题】最长回文子串题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案示例 2:输入: “cbbd”输出: “bb”思路这道题的第一个思路就是使用穷举的方法,穷举出所有的子串,然后判断每一个子串是否为回文子串,然后返回最长的那个,这样的话,穷举所有的子串,需要O(n ^ 2),判断回文串还需要O(n),这样一共就需要O(n ^ 3)我们可以使

2021-01-06 14:06:40 804 1

原创 【力扣日常】最后一块石头的重量

题目有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例输入:[2,7,4,1,8,1]输出:1解释:先选出 7 和 8,得到 1,所以数组转

2020-12-30 20:39:48 247 1

原创 剑指大厂 | 打家劫舍系列(dp)

打家劫舍系列这个系列的问题一共有三个,题目如下:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 =

2020-12-09 16:49:14 309 1

原创 力扣数据结构 | 有效的括号

有效的括号这道题比较简单,但是很有代表性,和计算器大体实现的原理差不多题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出:

2020-12-08 11:29:37 324

原创 设计模式 | 单例设计模式(五种实现)

单例设计模式的五种实现饿汉懒汉(线程不安全)懒汉(线程安全)DCL(双重检查)登记式(利用静态域的延时加载)package com.darwin.patterns.create;import java.util.Objects;/** * 单例设计模式 */public class SingletonPatternDemo { public static void main(String[] args) { }}/** * 饿汉 */clas.

2020-12-04 16:47:11 400

原创 二叉搜索树完整操作

二叉搜索树完整操作包含二叉搜索树的增加、删除、查询、以及五种形式的遍历(前序、中序、后序、层次遍历、锯齿遍历),为加快查询效率,使用哈希表进行了优化,没有优化的版本也提供了,按需要粘贴即可。package com.darwin.algorithm.tree;import com.darwin.algorithm.tree.util.TreeNode;import java.util.*;/** * 二叉搜索树的操作 */public class BinarySearchTree {

2020-12-04 09:38:36 344 1

原创 二叉树的五种遍历方式

二叉树的五种遍历方式二叉树一共有五种遍历方式,从大类上分可以分为dfs、和bfsdfs前序遍历中序遍历后续遍历bfs层次遍历锯齿形遍历代码ps: 笔者遍历方式定义到了枚举类中,使用于任何种类的二叉树。/** * 二叉树遍历方式枚举类 */enum TraverseWayEnum { /** * 前序遍历 */ PRE_ORDER { @Override public List<Integer

2020-12-03 10:52:40 774 1

自己写的精细版ngrok教程

自己总结的ngrok的使用方式,免费,希望对大家有用!!!!!!!!!!!!!!!!!!!!!!!!!

2020-10-09

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

TA关注的人

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