- 博客(9)
- 收藏
- 关注
原创 代码随想录算法训练营day14 | 226.翻转二叉树、101.对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度
把每一个节点的左右孩子翻转一下,就可以达到整体翻转的效果按照。
2024-07-09 09:57:56
483
原创 代码随想录算法训练营day13 | 递归遍历、层序遍历
(来自确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。
2024-07-08 00:58:44
392
原创 代码随想录算法训练营day06 | 242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和
对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。
2024-06-27 15:25:19
1634
原创 代码随想录算法训练营day05 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
思路:使用虚拟头结点会方便很多(图片截取自创建cur指针指向虚拟头结点,然后进行四步操作:步骤一:cur 的 next 指针指向值为2的节点;步骤二:值为2的节点的 next 指向值为1的节点;步骤三:值为1的节点的 next 指向值为3的节点;步骤四:cur向下移动两个节点,执行前三步;(注意:需要用临时节点 tmp 和 tmp1,先保存值为1的节点和值为3的节点,然后再执行四步骤。否则先执行完步骤一,就无法再找到值为1的节点了;同理,先执行完步骤二,就无法再找到值为3的节点了。
2024-06-26 18:07:59
1470
原创 代码随想录算法训练营day04 | 203.移除链表元素、707.设计链表、206.反转链表
思路:我采用(图片来自(如果没有虚拟头结点,那么在该链表中,删除非头结点和删除头结点的操作会不同)设置一个虚拟头结点,那么包括原头结点在内,每个节点都有一个前节点和一个后节点,移除元素的操作可以按照同一的方式进行。我在代码中给出了尽可能详细的注释。
2024-06-25 11:20:46
634
原创 代码随想录算法训练营day02 | 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II
思路:直观想法还是两层for循环,遍历所有的子数组,找到满足条件的子数组时都将其长度存入result变量,下一个找到的满足条件的子数组如果长度更短,则将更短的子数组的长度覆盖进result变量。暴力解法用两个for循环,分别指向子数组的头和尾。思路:给定的数组是按非递减顺序排列的,但是每个元素原地平方后就不一定是非递减顺序了,由y=x*x函数可知,0值处函数值最小,越往两边走,函数值越大。我们用双指针,一个指向数组的头,另一个指向数组的尾,取平方值大的放入新数组的尾部(题目要求新数组也是非递减顺序排列)。
2024-06-23 01:06:38
1442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1