自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 堆的操作 pta

编写代码,实现最小堆(Min-Heap)的操作。

2023-12-25 20:23:38 217

原创 2023.12.23 补题(浙大城市学院同步赛)

2. 将 xxx 变成 x⊕2^i(0≤i≤30),花费为 2^i。其中 ⊕ 表示位运算中的异或操作,例如,0101(十进制表示为 5) ⊕ 0011(十进制表示为 3) === 0110(十进制表示为 6)。思路:寻找大数中比小数更小的部分(1000与0011的后面两位)记录前面的biggerPart剩余部分用小数转化为大数完成。将状态转化成小数变成大数形式,即为y - x的时候,最小花费就是y - x,1. 将 xxx 变成 x+1x + 1x+1 ,花费为 111。

2023-12-23 19:41:59 83 1

原创 pta 数据结构-树的同构

【代码】pta 数据结构-树的同构。

2023-12-22 19:19:36 68

原创 数据结构-二叉树习题总结

判断部分一棵度为二的有序树与一棵二叉树的区别在于:有序树的结点次序是相对于另一结点而言的,如果有序树中的子树只有一个孩子时,这个孩子结点就无须区分其左右次序,而二叉树无论其孩子数是否为2,均需确定其左右次序,也就是说二叉树的结点次序不是相对于另一结点而言而是确定的树的结构是一对多,树有多个指向的节点,所以非线性数据结构的孩子之间互称,双亲在同一层次的结点互为。结点的是从根到该结点所经分支上的所有结点。反之,以某结点为根的子树中的任一结点都称为该结点的。

2023-12-17 15:14:12 221 1

原创 pta 7-6 破译报文

方法二:字符串哈希+二分。问题:求最长重复字串。

2023-12-13 20:07:31 83

原创 bfs模板 走迷宫acwing

【代码】bfs模板 走迷宫acwing。

2023-09-21 10:40:08 64

原创 算法学习-链表反转-level1-反转链表

由于链表的头节点不含有前驱节点pre,所以设置虚拟头节点dummyHead来将特殊情况普适化。只需要多处理头节点的情况就可以了,这里使用pre来代替dummyHead。图片来源:编程导航算法通关村第一期,LeetCode。具体来源:算法通关村第二关——链表反转—青铜挑战。,请你反转链表,并返回反转后的链表。希望对大家能有所帮助。

2023-08-28 20:17:38 384 1

原创 算法学习-链表-level3-环形链表

并且对于慢指针为什么在进入环的第一圈就一定会与快指针相遇,也可以给出相应证明,假设最极端情况——慢指针进入环之后,快指针恰好在慢指针前一个节点,此时快指针需要追慢指针LEN-1步。假设追上慢指针时,快指针走过路程为n,慢指针走过路程为m。也就是说在n = 1时有a = c的情况,所以我们将新的指针指向头节点,头节点(ans) 与 相遇处指针(slow)以相同速度同时移动,两指针将会在环入口处相遇,即使n不等于1时,放置两指针同时同速移动,也还是会在slow指针在环内移动(n-1)圈之后在环入口相遇。

2023-07-26 00:28:25 1117 1

原创 算法学习-链表-level2-两个链表的第一个公共节点

实现思路:在两链表大小相同时,我们完全可以使用循环的方式逐个判断两链表节点是否相同。实现思路:根据题意可知在相同节点之后,两链表的节点完全相同,这里我们可以利用栈结构后进先出的特点来实现这一题,分别将两链表存储栈内,同时取出栈顶元素进行对比,当遇到不同节点之后返回上一节点(prev)在代码实现方面,我们并不需要直接将两链表拼接,只需要在链表循环至NULL时再从另一个链表开始遍历即可,这里就完成了进一步优化。实现思路:将第一个链表的所有节点存入集合中,遍历第二个链表,并在集合中查询链表二的节点是否出现过。

2023-07-19 10:20:03 869

原创 算法学习-链表-level1

2、这也是写链表中很重要的点,只有先确定节点的存在性才能进行下面一系列的操作,比如双向链表的插入中操作curr->prev->next = curr->next,只有确认curr->next节点的存在才能进行进一步的比对。1、对于中间插入,因为单向链表中存在“开弓没有回头箭”的情况 所以我们选择记录插入节点的前一个节点(prev)这样我们就可以利用prev->next的方法很好的去进行接下来的操作。2、插入的过程需要遵守一个原则:先连接后续的节点,再连接前面的节点。那么接下来正式开始链表的增删操作。

2023-07-18 11:56:25 2041 2

空空如也

空空如也

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

TA关注的人

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