随笔分类 -  基础递归

在快速排序以及树结构的遍历中需要使用到的基础递归
摘要:剑指 Offer 12. 矩阵中的路径 题目链接 题目类似于迷宫的搜索。 需要注意的是,需要首先判断起始搜索的位置,可能有多个起点,都需要一一尝试。 每轮迭代的时候记得将是否遍历标记数组还原为未遍历的状态。 package com.walegarrett.offer; /** * @Author W 阅读全文
posted @ 2020-12-09 09:47 Garrett_Wale 阅读(73) 评论(0) 推荐(0) 编辑
摘要:包子凑数 "PREV 36" 这题首先需要知道不定方程的一些性质,即:ax+by=c的解的情况: 如果a,b互质,则一定有解且由无穷多个。若限制x,y =0,则ax+by=c有可能有负数解,即存在有限个c使得方程无正数解。且存在max{c|使方程无解的c}=a b a b; 如果a,b不互质,则可能 阅读全文
posted @ 2020-03-15 22:22 Garrett_Wale 阅读(291) 评论(0) 推荐(0) 编辑
摘要:正则表达式 "PREV 35" 首先看到题目的要求是求解最长的字符串,一看到最长应该想到一般是使用深度优先搜索和动态规划。 本题中求解的是正则表达式,因为符号只有四种,而且括号可以嵌套,所以我们可以从递归的角度求解最长的长度。 当遇到的字符是左括号时,这个时候应该继续递归以等待右括号的出现,当遇到的 阅读全文
posted @ 2020-03-15 21:14 Garrett_Wale 阅读(257) 评论(0) 推荐(0) 编辑
摘要:在受污染的二叉树中查找元素 "LeetCode 1261" 阅读全文
posted @ 2020-02-25 22:27 Garrett_Wale 阅读(172) 评论(0) 推荐(0) 编辑
摘要:二叉搜索树的第k大节点 "LeetCode 面试题54" 需要充分了解二叉搜索树的性质. 利用中序遍历的思想,采用相反的思想:先遍历右节点再遍历左节点。 阅读全文
posted @ 2020-02-24 20:26 Garrett_Wale 阅读(328) 评论(0) 推荐(0) 编辑
摘要:重建二叉树 "LeetCode 105" 首次需要知道前序遍历和中序遍历的性质。 解题思路如下:首先使用前序比遍历找到根节点,然后使用中序遍历找到左右子树的范围,再分别对左右子树实施递归重建。 本题的难点就是如何在前序遍历中找到左右子树的范围以分别重构,这可以根据中序遍历中的左右子树的数量来分辨。使 阅读全文
posted @ 2020-02-23 21:07 Garrett_Wale 阅读(191) 评论(0) 推荐(0) 编辑
摘要:二叉搜索树的范围和 "LeetCode 938" 1. 首先需要仔细理解题目的意思:找出所有节点值在L和R之间的数的和。 2. 这里采用递归来完成,主要需要注意二叉搜索树的性质。 阅读全文
posted @ 2020-02-23 20:13 Garrett_Wale 阅读(136) 评论(0) 推荐(0) 编辑
摘要:祖父节点值为偶数的结点值之和 "LeetCode 1315" 这题稍微难度有点大,但是仔细思考还是可以找到思路的。 因为只需要找到祖父节点这最上两层,所以可以带一个参数记录一下祖父节点是否是偶数,以及父节点是否是偶数。 求解的时候还需要注意本身结点是否是偶数,这个时候再改变参数的值。 阅读全文
posted @ 2020-02-22 21:39 Garrett_Wale 阅读(175) 评论(0) 推荐(0) 编辑
摘要:层数最深叶子结点的和 "LeetCode 1302" 这里可以采用上一题中求解二叉树的深度的方法。 因为需要记录最深结点的值的和,所以这里可以边求和,如果遇到不符合最深结点时再将和sum=0. 阅读全文
posted @ 2020-02-22 20:21 Garrett_Wale 阅读(401) 评论(0) 推荐(0) 编辑
摘要:二叉树的深度 "二叉树的深度" 使用递归求解二叉树的深度。 需要注意使用的临界条件。 阅读全文
posted @ 2020-02-22 20:01 Garrett_Wale 阅读(118) 评论(0) 推荐(0) 编辑
摘要:#对称二叉树 ##symmetric tree 和上一题的镜像树很相似,这里是判断是否是对称树,需要利用镜像树的性质。 对称树满足两个性质: 2.1. 两个子树的结点值需要相同。 2.2. 第一颗树的左子树和第二课树的右子树也满足这种对称树的关系(结点值相同)。 使用递归求解较容易想到,还可以使用迭 阅读全文
posted @ 2020-02-21 21:45 Garrett_Wale 阅读(104) 评论(0) 推荐(0) 编辑
摘要:二叉树的镜像 "二叉树的镜像" 1. 给定一个二叉树,输出二叉树的镜像。 2. 只需要使用一个简单的递归,分别对左右子树反转后再对当前结点进行反转。 阅读全文
posted @ 2020-02-21 21:08 Garrett_Wale 阅读(144) 评论(0) 推荐(0) 编辑
摘要:快速排序 "LanQiao 297" include include include include using namespace std; //每一趟返回一个数的确定位置 int onePart(int a,int i,int j){ int orig=a[i]; while(i=orig;k 阅读全文
posted @ 2020-02-06 19:37 Garrett_Wale 阅读(91) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示