自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第二十二天 || ● 216.组合总和III● 17.电话号码的字母组合

17.电话号码的字母组合。216.组合总和III。

2023-09-04 21:59:29 82

原创 第二十一天 || ● 理论基础 ● 77. 组合

回溯是递归的副产品,只要有递归就会有回溯。for循环横向遍历,递归深度遍历。一层递归就是一层for循环。

2023-09-02 21:53:05 82

原创 第二十天 || ● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树

108.将有序数组转换为二叉搜索树。538.把二叉搜索树转换为累加树。669. 修剪二叉搜索树。

2023-09-01 17:18:55 79

原创 第十九天 || ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先。701.二叉搜索树中的插入操作。450.删除二叉搜索树中的节点。

2023-08-31 21:00:03 62

原创 第十八天 || ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先

二叉搜索树是有顺序的,利用中序遍历,用前一个数与现在数进行比较。530.二叉搜索树的最小绝对差。236. 二叉树的最近公共祖先。501.二叉搜索树中的众数。

2023-08-30 16:42:37 39

原创 第十七天 || ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树

700.二叉搜索树中的搜索。98.验证二叉搜索树。构造二叉树用前序遍历。

2023-08-29 19:22:26 41

原创 第十六天 || ● 513.找树左下角的值● 112. 路径总和 113.路径总和ii● 106.从中序与后序遍历序列构造二叉树 ●105.从前序与中序遍历序列构造二叉树

找树左下角的值递归树左下角:最后一行+最靠左边的值最后一行:深度最大的叶子节点最靠左边的值:保证优先左边搜索,然后记录深度最大的叶子节点,此时就是树的最后一行最左边的值。路径总和要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回113.路径总和ii如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。

2023-08-28 19:27:43 27

原创 第十五天 || ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

左叶子:父节点的左孩子+叶子节点。257. 二叉树的所有路径。初识回溯,回溯与递归密不可分。高度差,利用后序遍历。

2023-08-23 17:57:02 34

原创 第十四天 || ● 104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数

104.二叉树的最大深度。

2023-08-22 22:10:07 30 1

原创 第十三天 || ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2

116.填充每个节点的下一个右侧节点指针。

2023-08-22 14:59:06 50 1

原创 第十二天||144.二叉树的前序遍历 145.二叉树的后序遍历 94.二叉树的中序遍历

然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。

2023-08-21 16:40:56 85 1

原创 第十一天||● 239. 滑动窗口最大值● 347.前 K 个高频元素

因为优先级队列对外接口只是从队头取元素,从队尾添加元素,再无其他取元素的方式,看起来就是一个队列。统计元素出现的频率,这一类的问题可以使用map来进行统计。对频率进行排序,使用一种 容器适配器就是。347.前 K 个高频元素。239. 滑动窗口最大值。

2023-08-19 22:19:46 34

原创 第十天||● 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项● 150. 逆波兰表达式求值

栈为什么适合做这种类似于爱消除的操作,因为栈帮助我们记录了 遍历数组当前元素时候,前一个元素是什么。逆波兰表达式也就是后缀表达式(二叉树的后序遍历(左右根))1047. 删除字符串中的所有相邻重复项。150. 逆波兰表达式求值。匹配问题都是栈的强项。

2023-08-18 20:30:09 44 1

原创 第九天||● 232.用栈实现队列● 225. 用队列实现栈

出栈时,要保证全部入栈的元素已经调好位置,所以把换位置的方法直接写在入栈。225. 用队列实现栈。232.用栈实现队列。

2023-08-18 16:20:39 39 1

原创 第八天||●28. 实现 strStr()●459.重复的子字符串

459.重复的子字符串。

2023-08-17 21:37:16 31 1

原创 第七天||● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符串

把string转换成数组,先去去除多余空格,再利用双指针反转,然后再反转一遍。剑指Offer58-II.左旋转字符串。剑指Offer 05.替换空格。151.翻转字符串里的单词。541. 反转字符串II。先反转前n个,再转后n个。

2023-08-16 17:12:35 25 1

原创 第六天||● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和

可以被认为是一个带有 x 行和 y 列的表格。但c#的二维数组不是,在本质上,是一个。使用map(映射),利用字典储存数据。c++的二维数组,本质是数组的数组。foreach对集合处理更加方便。二是用IList实现二维数组。454.四数相加II。

2023-08-15 15:12:05 56

原创 第五天||● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

如果哈希值比较少、特别分散、跨度非常大,使用数组就造成空间的极大浪费。不需要排序用HashSet,需要自动排序,用SortedSet。一般用字典,字典是泛型的hashtable,不需要拆箱装箱。什么时候用散列哈希,当查找需要两个值,且一一对应。查找一个元素在不在集合里,首先想到哈希表。242.有效的字母异位词。349. 两个数组的交集。

2023-08-13 16:48:34 30 1

原创 第四天||● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II

理解环形链表关键点,找到环交点,一个节点从头出发,另一个从相遇处出发,再次相遇,head走到的位置就是环交点。链表相交,说明相交后后面的内容长度一致,所以若要相交,要在长一点的链表减去短一点的链表找。面试题 02.07. 链表相交。24. 两两交换链表中的节点。19.删除链表的倒数第N个节点。142.环形链表II。注意储存,利用temp。移动头结点后,记得复原。

2023-08-13 01:32:15 37 1

原创 第三天||● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表

了解虚拟头结点,使删除节点方式更统一。203.移除链表元素。

2023-08-11 16:30:11 25 1

原创 第二天||977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

一个指针start表示开始位置,满足sum>=target,往后移动,缩小子数组长度。C# 中的交错数组可以用 C/C++ 中的二维数组的定义来理解——数组的数组。用一个指针end表示终止位置,动态移动。c#中交错数组和c++中二维数组差不多。交错数组用起来考虑边界比二维数组简单。这道题也是要用交错数组来解决。209.长度最小的子数组。977.有序数组的平方。滑动窗口,类似双指针。

2023-08-10 18:56:58 20 1

原创 第一天|| 704. 二分查找 、 27. 移除元素

704. 二分查找数组为有序数组数组中无重复元素左闭右闭左闭右开时间复杂度空间复杂度为 27. 移除元素暴力双指针法。

2023-08-09 16:28:00 86 1

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

Hashset 也不能像数组那样使用索引,所以在 HashSet 上你无法使用 for 循环,只能使用 foreach 进行迭代。map保存两个数据,一个是元素(key),一个是下标(value)一个高性能,无序的集合,不能做排序操作,也不能包含任何重复的元素。HashSet来平替c++中的unordered_set。C#中相当于map的是字典。查找什么,什么做key。

2023-06-16 15:01:19 28 1

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

画图确实很清晰,然后注意用tmp保存临时值。

2023-05-22 22:23:10 34 1

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

在c语言中,"->"是的运算符.它允许你通过指向结构体的指针来访问结构体中的成员.如果你有一个指向结构体"student"的指针"p",你可以使用"->"运算符来访问结构体成员。

2023-05-11 22:22:17 21

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

补充:之前找最值,想的是放在数组,遍历,比较找最值。有些时候本身就在遍历按,就可以不用放在数组,再去遍历,找最值。滑动窗口关键是如何移动起始位置,将双重for循环变成一重。终止位置j,起始位置是当sum>=target开始动态变化。双指针,跟第一天双指针不一样的是从数组两头开始遍历。//m*n的二维vector,所有元素为0。209.长度最小的子数组。977.有序数组的平方。

2023-04-21 23:04:21 68 1

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

看了《C++中数组索引a[i++]与a[++i]的区别》a[i++] = a[2]先赋值,再i++a[++i] = a[2]先i++,再赋值。

2023-04-20 22:35:36 102

空空如也

空空如也

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

TA关注的人

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