自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 小球落地——

一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高。

2023-10-18 18:14:30 189

原创 打印“完数”

【代码】打印“完数”

2023-10-18 17:59:23 305

原创 最小生成树——普利姆算法

普利姆算法把顶点分为两个集,一个放当前位置最小生成树上的结点U,一个放尚未处理过的结点V-U,这两个集合的各个结点之间肯定存在着一些边,我们选择权值最小的边,作为最小生成树的边,然后调整两个集合的结点,我们一旦选择了一条边作为最小生成树的边,那么这条边对应的节点,就要放进U里了。以此类推,直到U包含了所有结点。

2023-10-15 16:42:49 166

原创 图的广度优先遍历

广度遍历相当于我们一层一层地遍历,1.先把一个结点的相邻节点遍历完了,2.再遍历其相邻结点的相邻节点,当我们进行完1.时,该如何进行2.呢?,这时我们需要一个对列,去帮我们记录在进行1.的过程中节点的遍历顺序,当我们进行2.时,就直接按照1.中的遍历顺序去找他们各自的相邻节点。因此我们遍历到一个未被遍历过的节点时,先把他放到队列里,等到我们把1.进行完了,就可以把他拿出来,遍历他的相邻节点了。

2023-10-15 15:55:02 122

原创 图的深度优先遍历

【代码】图的深度优先遍历。

2023-10-15 15:31:06 77

原创 邻接矩阵转换成邻接表

【代码】邻接矩阵转换成邻接表。

2023-10-12 15:06:39 194

原创 邻接表转换成邻接矩阵

【代码】邻接表转换成邻接矩阵。

2023-10-12 14:47:46 450

原创 拓扑排序——

1)从有向图中选择一个没有前驱的(即入度为0)结点并且输出它;3)重复以上两步,知道剩余图中不再存在没有前驱的结点为止。2)从网中删除该结点,并且删去从该顶点发出的全部有向边;

2023-10-11 19:25:18 100

原创 串的匹配——简单算法

【代码】串的匹配——简单算法。

2023-10-06 21:36:59 78 1

原创 栈的应用——迷宫求解

在求解时,通常采用“穷举求解”,首先,我们要走“迷宫”,该怎么走,这个迷宫该怎么表示,让计算机能够识别,实际上,我们可以看出来,这个迷宫像是一个二维数组,可以走的空格,我们就将这个空格在二维数组中所在的位置的值赋为0,不能走的赋为1。如果不能走,即扫描二维数组的过程中,该空格的值为1,那就走南边,即i++,依次寻找可以通过的路径,并且每一次试探东西南北四个方向是否能走时,都要记录下来,你都试探了几个方向,以免走不通,退栈到这个路径时,我们重复试探。ps:灰色的方块表示墙,空白的表示可以走的通路。

2023-10-06 16:42:56 463 1

原创 栈的应用——括号匹配

设置一个栈st,扫描存放括号的数组exp,如果遇到(、{、[ 这类右括号就进栈,如果扫描到')',那就看栈顶元素st[top]是不是与之相对应的'(',如果是,就将栈顶元素出栈,这两个相匹配,可以不管了,继续扫描exp数组,类似的']'和'}'也一样,只要相匹配就像下扫描,如果栈顶元素不是与右括号相对应的左括号,即exp扫描到了')',而栈顶元素st[top]不是'(' ,那完了,妥妥的不匹配,那程序就结束了,最终结果为表达式中括号不匹配。

2023-10-06 15:38:26 174 1

原创 计数排序思想

因为数组中的元素大小都在最大值和最小值之间,所以计数数组可以将最大值与最小值跨度以内的元素保存下来,至于跨度之内出现的元素出现了几次,这就是计数数组的功效了。接下来,我们遍历需要排序的数组,将我们再排序数组里遍历得到的元素-bias,(bias=0-min),得到的值作为计数数组的下标,然后每次碰到相同的值,就会得到相同的下标,将下标对应的值++,这样遍历下来,计数数组中的下标实际上代表了排序数组中的元素(排序数组中的每个值是计数数组下标+min),而下标对应的值则是这个元素再数组中出现了几次。

2023-10-03 15:46:38 94 1

原创 排序——简单插入排序

这样一个步骤下来,有序序列就扩展到了有两个元素了,然后我们将第三个元素与此时的有序序列进行比较插入,我们倒着比较,先与第二个元素比较,就将第二个元素后移,放到第三个元素的位置上,再将第三个元素与第一个元素比较,如果比第一个元素大,将第一个元素后移到第二个元素的位置上,然后将第三个元素放到第一个元素的位置上,这样三个元素的比较插入就完成了,我们又得到一个有三个元素的有序序列了。如果第三个元素直接就比第二个元素大,那就位置不变,不需要与前面得到的有序序列进行比较插入。接下来的元素也是如此。

2023-10-02 16:23:52 88 1

原创 排序——选择排序

选择排序和冒泡排序有些类似,可以看作是冒泡排序的优化。冒泡排序是两两比较,交换;而选择排序,假设说是升序,是先把数组遍历一遍找出最大元素将其放在最后一个元素的位置上,然后再遍历数组找出第二大的元素,放在倒数第二个位置上,以此类推。

2023-10-02 15:25:17 74 1

原创 排序——PTA冒泡排序

【代码】排序——冒泡排序。

2023-10-01 21:41:22 1709 3

原创 leetcode——平衡二叉树

一个树要是平衡二叉树,它的子树也都应该是平衡二叉树,所以我们从树的底部开始判断。给定一个二叉树,判断它是否是高度平衡的二叉树。的左右两个子树的高度差的绝对值不超过 1。

2023-10-01 21:22:34 79 1

原创 leetcode234——回文链表

我们经由图上可知,当链表节点是偶数个时,遍历到合适的位置时,fast=NULL,此时可以将slow以后的链表反转,根据slow是否指向空,为判断标准进行比较;如果是奇数个节点,我们就将,slow再往后指向一个节点,再反转。解题思路:针对该题,首先我们可以找到链表的中间节点,然后将链表的后半部分反转,以便进行比较。但是针对链表节点个数的奇偶又有一些不同。,请你判断该链表是否为回文链表。给你一个单链表的头节点。

2023-09-30 17:47:14 134

原创 leetcode160——相交链表

法2:先把两个链表的长度计算出来,差值用一个变量diff存储,然后设置两个结构体变量指针p1指向长的那个链表,p2指向短的那个链表,然后先遍历p1指向的链表,遍历diff个节点,这之后,p1指向的链表的接下来就和p2指向的链表的长度一样了,此时它们同时开始向后遍历,如果p1=p2,那么就找到了两个单链表相交的起始节点。法2可能代码看起来复杂一点,但是我觉得法2可能更容易理解一点。两种方法皆可正常运行。,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回。给你两个单链表的头节点。

2023-09-30 16:41:12 101

原创 leetcode141,142——环形链表

解题思路:还是使用快慢双指针,先判断链表中是否存在环,如果存在将flag临时变量的值设置为1,然后,slow重新指向头节点,fast此时指向它们相遇的节点,然后slow和fast同时开始,每次都遍历一个节点,直到它们再次相遇,此时相遇的节点就是。解题思路:使用双指针,一个slow,一个fast,slow每次遍历一个节点,fast每次遍历两个节点,当slow和fast相遇时,说明链表中存在环。,返回链表开始入环的第一个节点。142,给定一个链表的头节点。如果链表无环,则返回。

2023-09-30 16:05:21 75

原创 leetcode83——删除链表中的重复元素

由题意可知,这是一个有序的链表,那么如果出现重复元素,这两个相同的元素一定是挨着的。给定一个已排序的链表的头。删除所有重复的元素,使每个元素只出现一次。

2023-09-29 17:44:49 97 1

原创 leetcode-448:找到所有数组中消失的数字

这道题不允许使用额外空间,但是这道题有一个特点“在[1, n] 范围内”可以与原数组的下标联系在一起,而且数组内的元素取值也是在[1, n] 范围内,将数组的每一个元素取出来,改变与这个取出来的元素的值相等的下标所对应的元素,将其加上数组的大小n,最后遍历数组,元素值小于n的元素对应的下标+1,就可以得到数组中消失的数字了。给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。

2023-09-29 16:14:36 112 1

原创 PTA基础编程题目集——7-38数列求和(加强版)

给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。

2023-09-28 16:20:28 297 1

原创 PTA基础编程题目集——7-35有理数均值

本题要求编写程序,计算N个有理数的平均值。

2023-09-27 21:01:18 248 1

原创 PTA基础编程题目集——7-31 字符串循环左移

输入一个字符串和一个非负整数N,要求将字符串循环左移N次。

2023-09-26 17:20:56 254 1

原创 PTA基础编程题目集——7-25 念数字

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。

2023-09-24 18:19:40 909 1

原创 PTA基础编程题目集——7-2 然后是几点

time / 100 * 60 + time%100 + minute——加完后的总的分钟数。// 当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;//输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。//time/100——原始小时数;// 注意,第二个数字表示的分钟数可能超过 60,也可能是负数。//读入两个数字,第一个数字以这样的四位数字表示当前时间,

2023-09-22 18:07:46 1226 2

空空如也

空空如也

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

TA关注的人

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