随笔分类 -  leetcode-递归

递归相关题目以及解法
摘要:链接 https://leetcode.cn/problems/number-of-islands/description/ 思路 跟岛屿周长差不多...但我觉得这个比岛屿周长还简单。不知道为什么这个算中等题目,岛屿周长算简单题目 代码 class Solution: def numIslands( 阅读全文
posted @ 2023-10-17 10:05 BJFU-VTH 阅读(6) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/sum-root-to-leaf-numbers/description/ 思路 时刻记住,DFS是递归的一种。而解决递归,最朴素的思路就是:递归的定义就是递归的解。 题目要求我们求根节点到叶子结点的和,我们要提供一个值保持其状态,退出 阅读全文
posted @ 2023-10-16 11:21 BJFU-VTH 阅读(12) 评论(0) 推荐(0) 编辑
摘要:问题描述 给你一个数组,生成这个数组中元素的全排列。 思路 经典的循环dfs。要点是我们需要设置visited数组来指代其是否被遍历过。 代码 class Solution: def islandPerimeter(self, grid): if not grid: return [] visite 阅读全文
posted @ 2023-10-16 11:05 BJFU-VTH 阅读(12) 评论(0) 推荐(0) 编辑
摘要:链接 https://leetcode.cn/problems/island-perimeter/description/ 思路 这题理论上来讲可以用深搜广搜来做,但我第一时间没搞明白怎么做,所以就先迭代一发。 思路就是: 1. 题目给定的只有1个岛屿,那么我们可以遍历整个grid,对于发现的新岛屿 阅读全文
posted @ 2023-09-04 13:40 BJFU-VTH 阅读(8) 评论(0) 推荐(0) 编辑
摘要:https://leetcode.cn/problems/sum-of-left-leaves/description/ 【分析】 该题要求左叶子之和。 如果我们对当前节点进行叶子节点的判断,那么我们是不知道当前节点是左叶子还是右叶子的。 所以我们应该在叶子结点的上层(父节点)进行判断。 【代码】 阅读全文
posted @ 2023-08-16 09:47 BJFU-VTH 阅读(9) 评论(0) 推荐(0) 编辑
摘要:https://leetcode.cn/problems/binary-watch/description/ 分析 这是典型的循环DFS问题。 循环DFS一般应用在: 1. 输出字符的按位全排列。(比如一共4个数字,输出3个数字的全部组合) 2. 输出字符的全排列。(结合visited数组) 3. 阅读全文
posted @ 2023-08-15 16:32 BJFU-VTH 阅读(14) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/decode-string/description/ 解题思路 这题一看就是个典型的递归题目,典型的递归函数的定义就是递归函数的解。 我们首先定义递归函数的参数和返回值。 递归函数的参数显然就是一个字符串,递归函数的返回值是经过计算 阅读全文
posted @ 2023-01-10 00:24 BJFU-VTH 阅读(33) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/elimination-game/ 解题思路 这题需要推理,和约瑟夫环一样。我暂时不想去深入研究,只想用模拟。 这题其实可以用递归来解,因为他每一层的处理方式几乎一模一样。 我们首先看参数和返回值。我们期望接收到一个数组和一个fla 阅读全文
posted @ 2023-01-09 23:21 BJFU-VTH 阅读(33) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/different-ways-to-add-parentheses/description/ 解题思路 这个题目是一个典型的递归问题,也是一个典型的分治问题。我们讲过,递归问题的定义就是递归的解。 首先我们考虑这个递归函数的定义,参 阅读全文
posted @ 2023-01-06 19:50 BJFU-VTH 阅读(19) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/reorder-list/description/ 解题思路 这题其实用list + 双指针模拟。很简单。 但我们要练习的是递归。 这题我本来是想用递归的方式进行模拟,但出了点问题。发现如果这样实现会有循环引用问题。 本着有简单的不 阅读全文
posted @ 2023-01-06 19:11 BJFU-VTH 阅读(28) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/powx-n/description/ 解题思路 这个题目具有缩小规模的潜质,所以可以用递归来进行解决。 为啥呢?因为幂本质上就是乘法。 2的3次幂,就是2*2*2。所以,我们要做的就是减少乘法的次数。 比如2的10次幂,它其实等于 阅读全文
posted @ 2023-01-06 11:20 BJFU-VTH 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://leetcode.cn/problems/swap-nodes-in-pairs/description/ 解题思路 首先这是个递归问题,因为它可以明显的缩小问题规模。既然是递归的问题,那我们按照递归的一般思路来。 首先,我们考虑递归函数的参数和返回值。 因为这个题目和上一 阅读全文
posted @ 2023-01-06 01:04 BJFU-VTH 阅读(16) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/add-two-numbers/description/ 解题思路 这题是倒着存储的,也要求我们返回一个倒着的链表。 即它需要我们左对齐,相加之后向后进位,但需要我们返回最左侧的结果节点。 看起来这也是个缩小规模的问题。 首先,我们 阅读全文
posted @ 2023-01-05 22:53 BJFU-VTH 阅读(39) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/hanota-lcci/description/ 解题思路 首先我们要定义递归函数。汉诺塔问题是典型的递归问题(缩小规模,小规模问题是大规模问题的子集),而且是典型的递归的定义就是递归的解的问题。 首先,我们定义一个汉诺塔函数,参数 阅读全文
posted @ 2023-01-05 18:52 BJFU-VTH 阅读(45) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/description/ 解决方案 首先,这题有更简洁的解法,但我的脑子不够用,我只会模拟。所以就只写模拟。 首先,按照解递归的一般思 阅读全文
posted @ 2023-01-05 12:57 BJFU-VTH 阅读(15) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/description/ 解题思路 参考这个 代码 # Definition for singly-linked list. # class Lis 阅读全文
posted @ 2023-01-04 11:48 BJFU-VTH 阅读(12) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/fan-zhuan-lian-biao-lcof/description/ 解题思路 参考上一个题目。 代码 class ListNode: def __init__(self, x): self.val = x self.next 阅读全文
posted @ 2023-01-04 11:42 BJFU-VTH 阅读(16) 评论(0) 推荐(0) 编辑
摘要:问题链接 https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/ 解题思路 首先看参数和返回值。参数为一个链表的头节点。返回值为一个逆序好的数组。 然后看本层做什么,以及怎么缩小规模。 本层要做 阅读全文
posted @ 2023-01-04 11:35 BJFU-VTH 阅读(14) 评论(0) 推荐(0) 编辑
摘要:问题描述 https://leetcode.cn/problems/fibonacci-number/description/ 解题思路 最经典的递归问题,它的问题描述就是递归的。 先考虑参数和返回值。参数就是n,返回值是fib(n)的值。 然后考虑本层做什么,以及缩小规模。 根据定义,本层就是将f 阅读全文
posted @ 2023-01-04 11:20 BJFU-VTH 阅读(37) 评论(0) 推荐(0) 编辑
摘要:题目链接 https://leetcode.cn/problems/power-of-four/description/ 解题思路 参考3的幂。 代码 class Solution: def isPowerOfFour(self, n: int) -> bool: if n <= 0: return 阅读全文
posted @ 2023-01-04 11:12 BJFU-VTH 阅读(16) 评论(0) 推荐(0) 编辑

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