![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer笔记
敤愛嘚皢嚟圖
这个作者很懒,什么都没留下…
展开
-
剑指offer第二版55-I 二叉树的深度题解笔记
题目:输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。解题思路:不要被“路径”两个字绊住,看到“路径”就开始构思如何列出所有路径,实际上这道题只需要求深度,跟路径没有太大的关系思路一:树的深度与左、右子树深度的关系树的深度 = 左子树的深度和右子树的深度中的最大值+1因此只需要求出左子树的深度和右子树的深度,再取最大值然后+1即可。而求左子树的深度和右子树的深度的过程直接可以用递归代替:class So原创 2022-03-29 10:10:53 · 365 阅读 · 0 评论 -
《剑指offer第二版》题53-I.在排序数组中查找数字I笔记记录
题目:统计一个数字在排序数组中出现的次数。题目链接要点记录:题目本身不难,但解题巧妙点在于对“次数”概念的转化——次数=数字在数组中出现的右边界-数字在数组中出现的左边界——更精妙的转化:次数=数字在数组中出现的右边界-(数字-1)在数组中出现的右边界。这样思路的转化极大程度的减少了时间,提升了效率。代码实现:class Solution: def search(self, nums: List[int], target: int) -> int: def原创 2022-03-10 09:45:06 · 260 阅读 · 0 评论 -
剑指offer第二版题51.数组中的逆序对笔记
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字构成逆序对。输入一个数组,求该数组的逆序对总数。题目链接解题思路:1.最直观暴力的解法:直接遍历,用多层循环去寻找逆序对。这样的方法会在LeetCode上超时(x)2.套用归并排序思想,采用分解——归并的步骤解决。将数组一步步对半拆开到每个数组中只有一个元素,只有一个元素的数组一定是有序的。 过程如图所示:(图源自LeetCode解析)当把数组拆分为只有一个元素之后,再把一个元素归并成包含两个元素的列表,归并的过程原创 2022-03-09 16:42:34 · 213 阅读 · 0 评论 -
《剑指offer第二版》题44:找寻数字序列中某一位的数字笔记记录
题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。题目链接1.解题步骤解题步骤主要分为三步:①...原创 2022-03-07 11:32:19 · 146 阅读 · 0 评论