- 博客(12)
- 收藏
- 关注
原创 Day15|二叉树
翻转二叉树,最好使用前后序遍历,只要掌握二叉树的遍历后,这个题目就不难了。下面用二叉树的前序递归、迭代、层序遍历都写一遍翻转算法。先留个坑,今天脑力消耗够了,先去学个别的。
2024-04-12 19:57:10 108 1
原创 Day14算法训练营|二叉树
10. **返回到第五次调用:** 返回到节点 3 的递归调用,调用 `traversal(root->right, result)`,即 `traversal` 函数的第七个递归调用,其中 `root` 指向 `NULL`(因为节点 3 的右子树为空)。7. **返回到第一次调用:** 返回到节点 1 的递归调用,调用 `traversal(root->right, result)`,即 `traversal` 函数的第五个递归调用,其中 `root` 指向节点 3。
2023-12-21 16:25:28 552
原创 Day10算法训练营| 栈与队列
pop()出栈:从栈的顶部移出元素,并返回被移出的元素;empty()判空:判断栈是否为空,即栈中是否包含元素。push() 入队enqueue: 添加元素到队列尾部。top()查看栈顶元素:获取栈的顶部元素,但不移出它。pop() 出队dequeue:从队列头部移出元素。front() 查看队头元素: 获取队列头部元素。size()获取元素数量:获取栈中元素数量。push()入栈:将元素添加至栈的顶部;back()查看队尾元素:获取队尾元素。图片来自代码随想录网站。empty() 判空。
2023-12-11 14:39:36 26 1
原创 DAY08 算法训练营| 字符串part01
扩大了空间,但是新增的空间并没有被初始化,因此取到的是未初始化的值。在 C++ 中,对于字符串的扩展空间,未初始化的部分会包含垃圾值。反转字符串是经典双指针法(回忆反转链表,有序数组的平方,三数之和,四数之和),分别表示从新的字符串末尾和旧的字符串末尾开始遍历。是从旧字符串的末尾开始,而。字符串和数组算法题目思路类似。是从新字符串的末尾开始。
2023-12-09 22:33:52 21
原创 算法训练营|Day06哈希表
举例理解:比如要查询一个名字是否在这所学校里,要枚举的话,时间复杂度为O(n),hash table只需O(1)。当我们使用集合set来解决哈希问题时,优先使用unoedered_set,因为它的查询和增删效率是最优的,如果需要集合是有序的,就用set;红黑树是一种平衡二叉搜索树,所以key值是有序的,但key不可以修改,改动key值会导致整棵树的错乱,只能删除和增加。但哈希法也是牺牲了空间换取时间,因为我们要使用额外的数组,set或者map来存放数据,才能实现快速的查找。
2023-12-04 23:00:58 50
原创 算法训练营Day04|链表
链表是一种通过指针串联在一起的线性结构,每个结点由两个部分组成:数据域和指针域。C++默认生成一个构造函数,但不会初始化任何成员变量;下面代码可以看出区别。C++中如何定义链表。
2023-12-03 21:24:34 23 1
原创 代码随想录算法训练营Day02|leetcode977有序数组的平方和、209长度最小的子数组、59螺旋矩阵
滑动窗口法,最巧妙的在这里,j代表滑动窗口尾部,遍历原数组。while条件,i++代表滑动窗口头部,不满足条件则舍弃窗口头部元素,从而实现窗口的大小缩放。主要是利用到双指针,数组中有正负数,需要从大到小排序比较合适,双指针,i,j从数据两侧开始取元素计算,从大到小(从右至左开始放元素)对于很多语法部分记忆不牢靠,一道题至少做三遍以上;今天用了三个小时去解决问题,但掌握仍不牢固,还得继续努力。
2023-11-30 21:49:41 51
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人