自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (4)
  • 收藏
  • 关注

原创 堆排序代码的理解

在第一次构建好大顶堆后,节点的大小顺序是第一层大于第二层依次类推的的,所以在第一次构建好大顶堆并且将其首元素与末尾元素进行交换后直接调用adjustHeap函数并且传参传的是堆顶元素的索引,adjustHeap里面的。如果没有构建好大顶堆,那么节点的大小顺序按照层次来看是没有规律的,如果直接调用adjustHeap函数并且传递的是第一个节点的参数的话,很可能出现以下的情况。由图我们可以看出来这个是构建不出来一个正确的大顶堆的,因为我写的这里的adjustHeap函数它内部的语句。

2024-01-17 21:24:28 371

原创 力扣226翻转二叉树

【代码】力扣226翻转二叉树。

2024-01-13 18:51:22 489

原创 力扣110平衡二叉树

实际就是从根节点的左右节点一层一层检查每一个左右节点的高度差不是小于等于一,check的作用就是检查当前节点的左孩子节点与右孩子节点的高度差是不是小于等于一,check1的作用是检查当前节点的左孩子节点与右孩子节点各自的左右孩子节点高度差是不是小于等于一,如此递归。deep函数返回的类型是int,他要返回的是各个节点的高度。如果存在某个节点的左孩子节点与右孩子节点的高度差大于一就返回-1,代表这棵树不是平衡二叉树。

2024-01-13 18:42:33 366

原创 力扣104二叉树的最大深度

利用队列,将每一层的节点都入队然后分别将它们的左孩子和右孩子节点入队直至队列为空。每次遍历完一层的节点深度depth就加一。

2024-01-13 17:24:55 338

原创 力扣101对称二叉树

无论是递归法还是迭代法,实质就是判断根节点的左孩子结点与右孩子结点是不是同时为空或者它们的值相不相同,然后左孩子的左孩子节点与右孩子的右孩子节点、左孩子的右孩子节点与右孩子的左孩子节点是不是一致,如此判断遍历完整棵树就行。

2024-01-12 18:46:29 341 1

原创 力扣144二叉树的前序遍历、94二叉树书的中序遍历、145二叉树的后序遍历

前序遍历要求遍历的顺序是根节点、左节点、右结点,于是我们在递归算法中将加入节点的操作放在遍历左节点和遍历右节点前面,遍历左节点也要放到遍历右节点前,因为递归其实是深度优先的,即进入了一个递归一定要等它完成这个递归过程后再来返回程序继续执行接下来的操作,于是按照前序遍历要求,我们需要遍历完左节点再遍历右节点。

2024-01-11 18:02:39 820

原创 力扣394字符串解码

2、为什么temp的初始值要等于从字符串栈中出栈的字符串呢,会不会造成嵌套括号的情况错乱呢,其实也不会,我们举例子来理解,3[a]2[bc]当遇到第二个]时,我们的操作是先令temp=aaa,然后再循环两遍,每一遍都将bc连接到aaa后面,对于3[a2[c]],我们先将temp=aaa然后再循环两次每一次都将c连接到temp后面,然后再将aaacc循环三遍,注意res是我们最终要返回的字符串,还是不理解的话可以结合例子自己画图一步一步推到底理解一下。

2024-01-09 19:03:30 506 1

原创 Leetcode876链表的中间节点

第二种解法,双指针,快指针每次走两步,慢指针每次走一步,当快指针走完时,根据下图所示及题目要求可知不论链表节点是偶数个还是奇数个直接返回慢指针指向的节点即可。第一种解法,利用动态数组,将节点全部存进数组中,然后依据题目的意思直接返回动态数组长度一半索引处的节点即可。

2023-12-29 21:12:30 319 1

原创 LeetCode206反转链表、234回文链表

双指针解法,如下图,定义三个节点,然后依次先使temp=curr.next,然后再把curr指向前一个结点,然后再将prev前进一个结点指向curr结点,最后使curr前进一个节点指向temp节点,循环至curr等于null。

2023-12-29 20:36:12 454 1

原创 力扣160 相交链表

第三种解法,利用双指针,当链表两个有相交结点时,如下图所示,先使每个节点一一步一步向后面移,当他们移动至自己为空时,将他们指向另外一个链表的开头,然后继续移动,他们会在指向另外一个链表的过后几步相遇,为什么呢,我们可以分析一下,链表a的长度为a+c,链表b的长度为b+c,当他们走完自己的路程后再从对方的链表头开始走到第一个相交的结点,链表a走过的长度是a+c+b,而链表b走过的长度是b+c+a,路程相同,即他们会在第一个相交的节点相交。当链表没有相交节点时,同理他们最后会同时指向空指针。

2023-12-28 10:06:43 350 1

原创 力扣141环形链表

第一种解法,每次遍历链表的结点时,都把它加入到哈希集中,由于哈希集中不能存在重复的元素,故当存在环时,遇到了前面已经加入哈希集的结点,使用哈希集的add方法添加失败将返回false。第二种解法,快慢指针,慢指针每次移动一个结点,快指针每次移动两个结点,若链表存在环,快指针总会与慢指针相遇。

2023-12-18 21:10:57 328 1

原创 力扣448

在不使用额外空间且时间复杂度为。

2023-12-14 13:17:06 22 1

原创 深度优先遍历与广度优先遍历

深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。其过程为:假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可以从图中的某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有和v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到为止。在本题中,读入一个无向图的邻接矩阵(即数组表示),建立无向图并按照以上描述中的算法遍历所有顶点,输出遍历顶点的顺序。输入。

2023-12-12 12:38:31 49

原创 我的eclipse中文乱码问题

按照网上教的那些教程调试后都不行,现在只能设置项目run as里面的run configurations 里面的common的Encoding改成use system encoding(GBK)

2023-12-10 19:10:05 30 1

原创 力扣283移动零

【代码】力扣283移动零。

2023-12-08 23:33:55 17

原创 力扣88合并两个有序数组

不新建一个数组,直接使用nums1数组,从nums1数组尾开始进行比较插入。新建一个临时数组,从临时数组的头开始进行比较插入。

2023-12-08 21:51:38 16

原创 决战21点

21点是一个非常有趣的游戏,游戏规则是两个人各自抽取若干张牌后看谁点数更大(但不能超过21点,否则算0)如果两个点数相等,则庄家获胜2 3 4 5 6 7 8 9点数都是各自的数码10 J Q K 都是10点A既可以当成11点,也可以当成1点。

2023-12-05 20:24:22 53 1

原创 html <button> 控件 与 <input type=“button“>

详细见。

2023-11-21 21:49:56 29

原创 骨牌覆盖

用一个1*3的骨牌去覆盖一个3*n的长方形,求所有可能的方案数,n的范围(n的范围 1<=n<=20000)方案数请输出对1000000007取模的结果。所有可能方案数 对1000000007取模的结果。找规律可知f(n)=f(n-1)+f(n-3)100%的数据 n<=20000。40% 数据 n<=20。80% 数据 n<=100。

2023-11-13 20:53:05 28

原创 c++连续输入数字,以空格分隔,回车结尾

【问题描述】给定一个有序的整数序列以及一个正整数,利用递归进行二分查找,判断该正整数是否在该序列当中。如果在,则输出yes,不在则输出no。【样例输入】2 4 9 12 14 21。【样例输入】1 3 7 10 12。第二种 用的是大二下学期学的istringstream。输入形式】1 3 7 10 12。问题比较简单,但是输入忘记了不会。

2023-10-12 20:35:19 821

原创 统计字母个数、单词统计问题

给定一段文章,请输出每个字母出现的次数。

2023-06-03 21:29:19 114

原创 大小写互换、机器指令、分数化小数

现在给出了一个只包含大小写字母的字符串,不含空格和换行,要求把其中的大写换成小写,小写换成大写,然后输出互换后的字符串。

2023-06-01 21:27:28 88 1

原创 阶乘最右边的那个非0数与阶乘之和

一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就更大了,它已经无法存放在一个浮点型变量中。比较大时,去计算n!幸运的是,在本题中,我们的任务不是去计算 n!最右边的那个非0的数字是多少。=1∗2∗3∗4∗5=120,因此5!最右边的那个非0的数字是2。最右边的那个非0的数字是4。请编写一个程序,输入一个整数n(n≤100),然后输出n!最右边的那个非0的数字是多少。输出格式:输出只有一个整数,即n!最右边的那个非0的数字。输入格式:输入只有一个整数n。

2023-05-30 20:39:37 86 1

原创 JAVA字节输入流与字节输出流

【代码】JAVA字节输入流与字节输出流。

2023-05-30 20:32:11 73 1

空空如也

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

TA关注的人

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