自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 必须掌握,二叉树的前中后序遍历(迭代+递归)详细代码

对于二叉树的三种遍历方式,无论是简单的递归写法,还是迭代写法,都是在面试中容易被考到的,所以这篇文章就把这个常考知识点给解释清楚。1.二叉树的前序遍历(LeetCode 144题)前序遍历的关键在于:先遍历根节点,再遍历左子树,再遍历右子树。即:根→左→右(1) 递归写法对于递归写法大家肯定都是非常清楚的,因为它的代码很简单,也比较容易理解,如下:class Solution { List<Integer> res = new ArrayList<>();

2021-01-17 15:19:25 1120

原创 牛客巅峰赛S2第四场题解(青铜白银组)

牛客巅峰赛S2第四场题解(青铜白银组)欢迎关注我的公众号ACJavaBear,一起学Java1.牛牛掷硬币题目描述牛牛最近很喜欢掷硬币,由于他今天很无聊,所以他在家掷了n次硬币,如果这n次硬币全部朝上或者全部朝下牛牛就很开心,请问牛牛开心的概率是多少。(每次掷硬币朝上的概率与朝下的概率相同)样例1输入1返回"1.00"说明概率为1,四舍五入保留两位小数的字符串为"1.00"样例2输入5返回"0.06"说明概率为0.0625,四舍五入保留两位小数的字符串为"0

2020-11-29 08:39:37 231

原创 牛客巅峰赛S2第三场题解(青铜白银组)

牛客巅峰赛S2第三场题解(青铜白银组)更多内容欢迎关注我的公众号ACJavaBear,一起学习Java。1.牛牛打怪题目描述牛牛在各个平台被各种传奇游戏的广告轰炸,所以他决定去玩一玩这类的游戏。这类游戏挂机就可以升级,所以牛牛每天都能变强。在第i天里,牛牛能杀死防御力小于等于i的怪物。但由于牛牛还要刷题,所以牛牛每天最多杀一只怪物。这个游戏共有n只怪物,每只怪物的防御力为DEF[i],牛牛想知道最少要到第几天才能把这n只怪物都杀死。样例1输入2,[7,3]返回7说明牛牛可以在第

2020-11-26 00:09:00 266

原创 Trie树Java模板

TrieTrieTrie 树欢迎关注我的公众号ACJavaBear了解更多精彩内容1.什么是 TrieTrieTrie 树TrieTrieTrie 树,又叫前缀树,也叫字典树,用于统计和保存大量的字符串。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。简而言之,TrieTrieTrie 树是用来存储和查找字符串的一个集合。2. TrieTrieTrie 树的结构如图(图片来自于百度百科)(1) 根节点 root(2) 子节点 TrieNode该节点是

2020-11-23 23:08:53 206

原创 牛客巅峰赛S2第2场题解(青铜白银组)

牛客巅峰赛青铜白银组S2第2场第一题题意:牛牛是个非常热心的人,所以他有很多的朋友。这一天牛牛跟他的n个朋友一起出去玩,在出门前牛牛的妈妈给了牛牛k块糖果,牛牛决定把这些糖果的一部分分享给他的朋友们。由于牛牛非常热心,所以他希望他的每一个朋友分到的糖果数量都比牛牛要多(严格意义的多,不能相等)。牛牛想知道他最多能吃到多少糖果?示例1输入:2,10输出:2说明:牛牛可以分给他的两个朋友各4个糖果,这样他能吃到2个糖果,这样能保证他的每个朋友的糖果数都比他多,不存在牛牛能吃到3个或者以上

2020-11-20 23:49:05 264

原创 Set集合分析

Set存储无序,不可重复的元素。无序性:存储元素的顺序并不是按数组的索引顺序添加,而是根据哈希值来决定。不可重复性:用equals()判断,相同的元素只能添加一个Set没有自己定义API一、HashSetHashSet底层是 数组 + 链表,数组的初始大小为16。HashSet线程不安全。向HashSet中添加元素a的过程:(1) 首先调用元素a所在类的hashCode()方法,计算元素a 的哈希值(2) 通过某种算法,利用哈希值计算出在HashSet底层数组中的存放位置(即索引位置)(

2020-11-16 23:03:08 659

原创 开源项目学习指南,血与泪的教训(新手向)

1.开源项目在哪里(1) GitHubGitHubGitHub(2) 码云2.观察一个开源项目以码云上的 RuoYiRuoYiRuoYi 项目为例。(1) 阅读 README.mdREADME.mdREADME.md 文件,这里一般是对项目的一些介绍,比如用到了哪些技术栈,对应的版本,有哪些功能,线上演示网址等等。(2) 简单浏览项目的代码封包结构 ,得到基本的信息。比如这是一个 MavenMavenMaven 项目还是一个 GradleGradleGradle 项目,项目有没有提供 .sql.

2020-11-15 23:06:13 223

原创 Java中的值传递

1.引子:变量的赋值对于基本数据类型int m = 1;int n = 2;System.out.println("m = " + m);System.out.println("n = " + n);n = m;System.out.println("n = " + n);输出m = 1n = 2n = 1赋的值就是变量值。对于引用类型class User{ int a;}User u1 = new User();u1.a = 1;User u2 = u1;

2020-11-14 23:38:38 154

原创 SpringBoot 配置文件与自动装配原理

1.关于 SpringBootSpringBootSpringBoot 的配置文件1.0 配置文件的类型SpringBootSpringBootSpringBoot 支持以下两类配置文件。后缀为 .properties.properties.properties 的文件后缀为 .yml.yml.yml 的文件1.1 配置文件的位置在创建一个 SpringBootSpringBootSpringBoot 工程时,默认在 resourcesresourcesresources 目录下有一

2020-11-13 22:55:48 693

原创 并查集Java代码模板

并查集1.什么是并查集并查集是一种树型的数据结构,用于处理一些不交集的合并及查询问题。它可以支持两种操作(1) 将两个不相交的集合合并(2) 判断两个元素是否在一个集合中两种操作的时间复杂度近乎O(1)O(1)O(1)。2.并查集的存储结构并查集是一种树形结构,换句话说,就是每个集合用一棵树表示。这个集合的编号就是这棵树的树根。我们用一个数组p来存储每个节点的父节点的编号,即 p[x]p[x]p[x] 表示编号为 xxx 的结点的父节点的编号为 p[x]p[x]p[x] 。初始化:把每个点所

2020-11-12 23:03:15 670

原创 前缀和与差分Java代码模板

1.什么是前缀和这里只介绍一维前缀和与二维前缀和即假设有一数列{an}\{ a_n\}{an​} ,那么前缀和就可以理解为 a1+a2+a3+...+aia_1 + a_2 + a_3 + ... + a_ia1​+a2​+a3​+...+ai​。而前缀和数组即为存储以a1a_1a1​为起点,aia_iai​为终点的前缀和的数组。举个例子:若b1=a1b_1 = a_1b1​=a1​b2=a1+a2b_2 = a_1 + a_2b2​=a1​+a2​b3=a1+a2+a3b_3 = a

2020-11-07 17:57:11 644

原创 快速排序与归并排序(Java模板)

一、快速排序1.快排思想(1) 确定分界点,把数组分成两部分。常用的分界点有:数组第一个数,数组最后一个数,数组中间那个数一般我会选用数组中间那个数作为分界点,这样后面的写法也固定了,不容易遇到边界问题。(2) 根据分界点调整数组,使得分界点左边的数都小于等于分界点,分界点右边的数都大于等于分界点方法:利用双指针的移动,左指针在左边大于分界点的数停下,右指针在右边小于分界点的数停下,交换这两个数。(3) 递归处理左右两边。(4) 时间复杂度O(nlogn)O(nlogn)O(nlogn)。

2020-11-07 17:54:06 427 1

空空如也

空空如也

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

TA关注的人

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