![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣刷题60天——c#
从零开始刷题
qq_49510069
这个作者很懒,什么都没留下…
展开
-
第二十天 || ● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树
108.将有序数组转换为二叉搜索树。538.把二叉搜索树转换为累加树。669. 修剪二叉搜索树。原创 2023-09-01 17:18:55 · 76 阅读 · 0 评论 -
第十九天 || ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点
235. 二叉搜索树的最近公共祖先。701.二叉搜索树中的插入操作。450.删除二叉搜索树中的节点。原创 2023-08-31 21:00:03 · 60 阅读 · 0 评论 -
第十八天 || ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
二叉搜索树是有顺序的,利用中序遍历,用前一个数与现在数进行比较。530.二叉搜索树的最小绝对差。236. 二叉树的最近公共祖先。501.二叉搜索树中的众数。原创 2023-08-30 16:42:37 · 39 阅读 · 0 评论 -
第十七天 || ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树
700.二叉搜索树中的搜索。98.验证二叉搜索树。构造二叉树用前序遍历。原创 2023-08-29 19:22:26 · 41 阅读 · 0 评论 -
第十六天 || ● 513.找树左下角的值● 112. 路径总和 113.路径总和ii● 106.从中序与后序遍历序列构造二叉树 ●105.从前序与中序遍历序列构造二叉树
找树左下角的值递归树左下角:最后一行+最靠左边的值最后一行:深度最大的叶子节点最靠左边的值:保证优先左边搜索,然后记录深度最大的叶子节点,此时就是树的最后一行最左边的值。路径总和要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回113.路径总和ii如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。原创 2023-08-28 19:27:43 · 26 阅读 · 0 评论 -
第十五天 || ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和
左叶子:父节点的左孩子+叶子节点。257. 二叉树的所有路径。初识回溯,回溯与递归密不可分。高度差,利用后序遍历。原创 2023-08-23 17:57:02 · 33 阅读 · 0 评论 -
第十四天 || ● 104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
104.二叉树的最大深度。原创 2023-08-22 22:10:07 · 29 阅读 · 1 评论 -
第十三天 || ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2
116.填充每个节点的下一个右侧节点指针。原创 2023-08-22 14:59:06 · 50 阅读 · 1 评论 -
第十二天||144.二叉树的前序遍历 145.二叉树的后序遍历 94.二叉树的中序遍历
然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。原创 2023-08-21 16:40:56 · 83 阅读 · 1 评论 -
第十一天||● 239. 滑动窗口最大值● 347.前 K 个高频元素
因为优先级队列对外接口只是从队头取元素,从队尾添加元素,再无其他取元素的方式,看起来就是一个队列。统计元素出现的频率,这一类的问题可以使用map来进行统计。对频率进行排序,使用一种 容器适配器就是。347.前 K 个高频元素。239. 滑动窗口最大值。原创 2023-08-19 22:19:46 · 32 阅读 · 0 评论 -
第十天||● 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项● 150. 逆波兰表达式求值
栈为什么适合做这种类似于爱消除的操作,因为栈帮助我们记录了 遍历数组当前元素时候,前一个元素是什么。逆波兰表达式也就是后缀表达式(二叉树的后序遍历(左右根))1047. 删除字符串中的所有相邻重复项。150. 逆波兰表达式求值。匹配问题都是栈的强项。原创 2023-08-18 20:30:09 · 43 阅读 · 1 评论 -
第九天||● 232.用栈实现队列● 225. 用队列实现栈
出栈时,要保证全部入栈的元素已经调好位置,所以把换位置的方法直接写在入栈。225. 用队列实现栈。232.用栈实现队列。原创 2023-08-18 16:20:39 · 38 阅读 · 1 评论 -
第八天||●28. 实现 strStr()●459.重复的子字符串
459.重复的子字符串。原创 2023-08-17 21:37:16 · 30 阅读 · 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 · 24 阅读 · 1 评论 -
第六天||● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和
可以被认为是一个带有 x 行和 y 列的表格。但c#的二维数组不是,在本质上,是一个。使用map(映射),利用字典储存数据。c++的二维数组,本质是数组的数组。foreach对集合处理更加方便。二是用IList实现二维数组。454.四数相加II。原创 2023-08-15 15:12:05 · 51 阅读 · 0 评论 -
第五天||● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和
如果哈希值比较少、特别分散、跨度非常大,使用数组就造成空间的极大浪费。不需要排序用HashSet,需要自动排序,用SortedSet。一般用字典,字典是泛型的hashtable,不需要拆箱装箱。什么时候用散列哈希,当查找需要两个值,且一一对应。查找一个元素在不在集合里,首先想到哈希表。242.有效的字母异位词。349. 两个数组的交集。原创 2023-08-13 16:48:34 · 29 阅读 · 1 评论 -
第四天||● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II
理解环形链表关键点,找到环交点,一个节点从头出发,另一个从相遇处出发,再次相遇,head走到的位置就是环交点。链表相交,说明相交后后面的内容长度一致,所以若要相交,要在长一点的链表减去短一点的链表找。面试题 02.07. 链表相交。24. 两两交换链表中的节点。19.删除链表的倒数第N个节点。142.环形链表II。注意储存,利用temp。移动头结点后,记得复原。原创 2023-08-13 01:32:15 · 36 阅读 · 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 · 83 阅读 · 1 评论