![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 57
lhlc67
这个作者很懒,什么都没留下…
展开
-
day39动态规划part02| 62.不同路径 63. 不同路径 II 343. 整数拆分 (可跳过)96..不同的二叉搜索树 (可跳过)
本题大家掌握动态规划的方法就可以。数论方法 有点非主流,很难想到。原创 2024-06-26 22:22:11 · 196 阅读 · 0 评论 -
day38动态规划part01| 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。 如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了? 其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要! 如果做过动态规划题目的录友,看我的理论基础 就会感同身受了。题目讲解 | 视频讲解动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的,例如:有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到原创 2024-06-26 22:20:16 · 1034 阅读 · 0 评论 -
day36贪心算法part04|860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球
本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。原创 2024-06-12 21:44:44 · 295 阅读 · 0 评论 -
day35贪心算法part03| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果
本题简单一些,估计大家不用想着贪心 ,用自己直觉也会有思路。自己的想法,也通过了。原创 2024-06-12 21:41:08 · 386 阅读 · 0 评论 -
day32贪心算法part02| 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II
本题解法很巧妙,大家可以看题思考一下,在看题解。原创 2024-06-12 21:42:59 · 365 阅读 · 0 评论 -
day31贪心算法part01| 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
刚开始想到的,但是这样太暴力了,太笨了。原创 2024-06-10 23:00:35 · 769 阅读 · 0 评论 -
day30回溯算法part06| 332.重新安排行程 51. N皇后 37. 解数独
TODO。原创 2024-06-10 22:59:27 · 125 阅读 · 0 评论 -
day29回溯算法part05| 491.递增子序列 46.全排列47.全排列 II
本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。这题不能直接对初始的序列进行排序,然后去重。题意是要从这个序列里找非递减序列,排序就乱了这里的去重方法是通过,在for之前定义一个哈希表,在每个树层加入path之前先判断之前是否使用过。原创 2024-06-10 22:57:40 · 140 阅读 · 0 评论 -
day28回溯算法part04| 93.复原IP地址 78.子集 90.子集II
大家之前做了 40.组合总和II 和 78.子集 ,本题就是这两道题目的结合,建议自己独立做一做,本题涉及的知识,之前都讲过,没有新内容。子集问题,就是收集树形结构中,每一个节点的结果。整体代码其实和 回溯模板都是差不多的。这题就是使用了之前的去重策略,在树层上进行去重,如果前一个数已经使用过了,就跳过一个树枝。本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了。去重的时候要对数组进行排序,别忘记了。还是要熟悉这个回溯解题模板。原创 2024-06-10 22:55:58 · 385 阅读 · 0 评论 -
day27回溯算法part03| 39. 组合总和 40.组合总和II 131.分割回文串
本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制。原创 2024-06-10 22:54:25 · 359 阅读 · 0 评论 -
day25回溯算法part02| 216.组合总和III 17.电话号码的字母组合
这题自己参考前面组合总数的题目自己做出来的。原创 2024-06-01 15:24:22 · 273 阅读 · 0 评论 -
day24回溯算法part01| 理论基础 77.组合
其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解。回溯的逻辑模板。原创 2024-06-01 15:23:46 · 202 阅读 · 0 评论 -
day23二叉树part09| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇
好了,二叉树大家就这样刷完了,做一个总结吧。原创 2024-05-30 22:08:03 · 431 阅读 · 0 评论 -
day22二叉树part08 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点
这里利用上了二叉搜索树的特性,从上到下遍历,最近的公共祖先一定是满足p->val <= root->val <= q->val的相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。原创 2024-05-29 21:26:53 · 589 阅读 · 0 评论 -
day21二叉树part07|530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先
遇到在二叉搜索树上求什么最值,求差值之类的,都要思考一下二叉搜索树可是有序的,要利用好这一特点。需要领悟一下二叉树遍历上双指针操作,优先掌握递归。原创 2024-05-29 21:25:11 · 608 阅读 · 0 评论 -
day20二叉树part06| 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树
构造树一般采用的是前序遍历,因为先构造中间节点,然后递归构造左子树和右子树。这题在找最大值和最大值下标的时候用了两个库函数又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历。原创 2024-05-28 22:13:12 · 544 阅读 · 0 评论 -
day18二叉树part05| 513.找树左下角的值 112. 路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历序列构造二叉树 一起做,思路一样的。只需要在257题目上修改一小部分代码就能ac后两道题,直接把这三个题当模板题做。本题 又一次设计要回溯的过程,而且回溯的过程隐藏的还挺深,建议先看视频来理解。112. 路径总和,和 113. 路径总和ii 一起做了。既然能求出所有路径了,那直接把所有路径的值求和然后和目标值匹配就行。本地递归偏难,反而迭代简单属于模板题, 两种方法掌握一下。本题算是比较难的二叉树题目了,大家先看视频来理解。原创 2024-05-27 21:28:44 · 393 阅读 · 0 评论 -
day17二叉树part04 | 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和
就是一颗根节点的左右两个子树的高度差绝对值不超过1。根据这个定义,有必要深刻理解一下高度和深度的定义,以下内容来自代码随想录:二叉树节点的:从的最长简单路径边的条数二叉树节点的:从的最长简单路径边的条数因为,而有的同学一定疑惑,为什么中求的是二叉树的最大深度,也用的是后序遍历。原创 2024-05-27 21:27:12 · 490 阅读 · 0 评论 -
day16二叉树part03 | 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
1.使用递归,主要思想是递归遍历左右子树,然后左右子树高度的最大值加1即为当前节点的高度。2.之前学习层次遍历的时候做过这题,直接在层次遍历的时候加上一个计数变量即可。原创 2024-05-26 19:54:35 · 424 阅读 · 0 评论 -
day15二叉树part02 | 层序遍历 10 226.翻转二叉树 101.对称二叉树 2
给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。原创 2024-05-26 19:53:56 · 438 阅读 · 0 评论 -
day14 | 二叉树part01-递归遍历 迭代遍历 统一迭代
前序遍历。原创 2024-05-22 13:28:27 · 426 阅读 · 0 评论 -
day13 | 239. 滑动窗口最大值 347.前 K 个高频元素 总结
栈与队列做一个总结吧,加油。原创 2024-05-22 13:27:57 · 334 阅读 · 0 评论 -
day11 | 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值
这里if判断是数字不好判断,因为操作符的情况好写,所以else是数字的情况。原创 2024-05-19 14:59:20 · 233 阅读 · 0 评论 -
day10 | 232.用栈实现队列 225. 用队列实现栈
【代码】day10 | 232.用栈实现队列 225. 用队列实现栈。原创 2024-05-17 21:54:51 · 331 阅读 · 0 评论 -
day09 | 28. 实现 strStr() 459.重复的子字符串 字符串总结 双指针回顾
在C语言中,把一个字符串存入一个数组时,也把结束符 '\0’存入数组,并以此作为该字符串是否结束的标志。a[i]!= '\0';i++) {在C++中,提供一个string类,string类会提供 size接口,可以用来判断string类字符串是否结束,就不用’\0’来判断是否结束。i++) {原创 2024-05-17 21:55:31 · 318 阅读 · 0 评论 -
day08 | 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字 151.翻转字符串里的单词 卡码网:55.右旋转字符串
这两种写法都可以,都要理解。原创 2024-05-16 16:46:28 · 409 阅读 · 0 评论 -
day07 | 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
这题的思想和两数之和有点像,可以对比着看一下给定四个整数数组 nums1, nums2, nums3, 和 nums4,目标是找到满足 nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0 的元组 (i, j, k, l) 的数量。原创 2024-05-14 23:03:22 · 294 阅读 · 0 评论 -
day06 | 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。什么时候想到用哈希法,。这句话很重要,大家在做哈希表题目都要思考这句话。原创 2024-05-14 23:01:47 · 448 阅读 · 0 评论 -
day04 _ 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II
题目链接/文章讲解/视频讲解:第一种方法是卡哥的代码,如下图所示。但是我第一次想的和这种方法不一样,感觉一直用->next容易混乱。所以写了第二种方法第一次写的时候,把first和second放在了while外面,这样写不好。作用域:first 和 second 只在循环内部使用,因此将它们的定义放在循环内部能够限制它们的作用域,使得它们不会在循环外部被误用。初始化:在每次迭代开始时,需要重新确定 first 和 second 节点。将它们的定义放在循环内部能够保证它们每次都指向当前需要交换的节点。原创 2024-05-13 14:22:43 · 364 阅读 · 0 评论 -
day03 | 203.移除链表元素 707.设计链表 206.反转链表
文章链接:https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html。题目链接/文章讲解/视频讲解:https://programmercarl.com/0707.%E8%AE%BE%E8%AE%A1%E9%93%BE%E8%A1%A8.html。在原链表的基础上,先判断头结点,直到头结点符合条件,再判断整个链表。添加一个虚拟头结点,统一头节点和其他节点的操作,逻辑更清晰。原创 2024-05-11 22:40:37 · 223 阅读 · 0 评论 -
day02 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结
文章讲解:https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html。文章讲解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.html。只不过这种解法更像是一个窗口的移动,所以叫做滑动窗口更适合一些。原创 2024-05-10 09:56:40 · 781 阅读 · 0 评论 -
day01 | 704. 二分查找、27. 移除元素
看到两个条件要考虑一下二分法。原创 2024-05-08 21:22:09 · 201 阅读 · 0 评论