自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第十四天 | 104.二叉树的最大深度 ,111.二叉树的最小深度,222.完全二叉树的节点个数

104.二叉树的最大深度104.二叉树的最大深度使用前序求的就是深度,使用后序求的是高度。根节点的高度就是二叉树的最大深度。递归:每次写递归,都按照这三要素来写,可以保证大家写出正确的递归算法!只要确定单程逻辑111.二叉树的最小深度,注意是。左右孩子都为空的节点才是叶子节点!

2023-12-06 23:15:16 36 1

原创 代码随想录算法训练营第十三天 |102.二叉树的层序遍历, 226.翻转二叉树 ,101. 对称二叉树

层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前讲过的都不太一样。队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。在 Python 中,正确的写法是把两行写在同一行,就能保证。需要借用一个辅助数据结构即队列来实现,每日反思 :希望你可以加油。102.二叉树的层序遍历。102.二叉树的层序遍历。的修改是同时进行的。

2023-11-27 11:46:33 51 1

原创 代码随想录算法训练营第十二天 | 二叉树理论基础篇,二叉树的递归遍历,二叉树的迭代遍历

如果父节点的数组下标是 i,那么它的左孩子就是 i * 2 + 1,右孩子就是 i * 2 + 2。二叉树的递归遍历 前序/中序/后续 前序遍历:后序遍历: 中序遍历: 每日反思:进度太慢了,我的锅

2023-11-24 22:14:56 46 1

原创 代码随想录算法训练营第十一天 | 239. 滑动窗口最大值,347.前 K 个高频元素

总之要保证队列里单调递减或递增的原则,所以叫做单调队列。什么是优先级队列呢?其实。

2023-11-24 10:54:53 34 1

原创 代码随想录算法训练营第十天 | 20. 有效的括号, 1047. 删除字符串中的所有相邻重复项, 150. 逆波兰表达式求值

注意空字符串可被认为是有效字符串。

2023-11-22 11:17:03 33 1

原创 代码随想录算法训练营第九天 | 栈与队列理论基础 , 232.用栈实现队列 , 225. 用队列实现栈

队列是先进先出,栈是先进后出。在C++中,std::stack是一个容器适配器(container adapter),而不是容器。它通过在底层容器上提供一些特定的操作来实现栈(stack)的功能。栈(stack)是一种先进后出(Last In, First Out,LIFO)的数据结构。std::stack通过一个底层容器(默认是std::deque)来存储元素。你也可以在构造std::stack对象时选择其他底层容器,如或std::list。关于迭代器,std::stack。

2023-11-20 21:30:58 35 1

原创 代码随想录算法训练营第八天 | KMP算法,28. 找出字符串中第一个匹配项的下标,459.重复的子字符串

"后缀"指。

2023-11-20 19:53:11 35 1

原创 代码随想录算法训练营第七天 | 344.反转字符串 ,541. 反转字符串II, 卡码网:54.替换数字, 151.翻转字符串里的单词,卡码网:55.右旋转字符串。

在 Python 中,字符串是不可变的(immutable)类型,不能通过索引直接修改字符串中的字符。原地修改输入数组。使用切片使用reversed。

2023-11-17 21:32:55 23

原创 代码随想录算法训练营第六天 | 第454题.四数相加II,383. 赎金信 ,15. 三数之和 , 18. 四数之和

当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是,牺牲了空间换取了时间。数组范围可控,数据量小set (集合)数值很大 可以去重字典map(映射) 关键字对应值的话犹豫不决先排序,步步逼近双指针适当的剪枝,可以减少不必要的遍历。

2023-11-16 23:22:02 20 1

原创 代码随想录算法训练营第五天 | 哈希表理论基础,242.有效的字母异位词, 349. 两个数组的交集,1 .两数之和, 202. 快乐数

H(key)=key%11,把一个整数值转化为散列表下标,现把数据{1,13,12,34,38,33,27,22}依次插入到散列表中。思路:想对数组进行排列,找到小于等于target的数值,但是题目需要返回下标,这样我虽然想的节省时间,少循环,但是改变了索引小标(❌)思路:先用set()过滤重复元素,在较小长度的集合,对元素进行遍历,看是否较长的集合中的元素和较短的元素有相同的。直接看表格,从前往后,每一个关键字开始指导下一个地址为空结束 ,即为失败的次数。,所以不可能从散列值来确定唯一的输入值。

2023-11-15 23:06:35 50 1

原创 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 , 19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交, 142.环形链表II

虚拟指针一般情况下很好用。快慢指针,双指针,临时指针,助力很大!!每日反思:拉下了很多,效率还是太低!

2023-11-13 16:49:11 23

原创 代码随想录算法训练营 第三天 | 链表 |203.移除链表元素, 707.设计链表 ,206.反转链表

单链表:每一个节点有一个指针域,指向下一个节点。双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。循环列表:链表首尾相连。是在内存中是连续分布的,是通过指针域的指针链接在内存中各个节点。C++:最好是再手动释放这个D节点,释放这块内存。,有自己的内存回收机制,不用自己手动释放了。

2023-11-12 21:30:34 27

原创 代码随想录算法训练营第二天 |977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

选定区间,注意边界。

2023-11-10 11:14:29 114

原创 代码随想录算法训练营 第一天| 704. 二分查找、27. 移除元素。

Python的索引从0开始,这样使得range(n)和[:n]返回了同样多的n个元素。,要注意vector 和 array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。写二分法,区间的定义一般为两种,左闭右闭即[left, right],或者左闭右开即[left, right)。如果看开源项目,知名框架 源码, 会发现 大家默认都用的左闭右开。是没有指针的,同时也不对程序员暴露其元素的地址,寻址操作完全交给虚拟机。二维数组的每一行头结点的地址是没有规则的,更谈不上连续。

2023-11-08 23:32:49 192

空空如也

空空如也

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

TA关注的人

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