递归
一叶知秋的BLOG
没有过不去的黑夜,也没有等不到的明天。乾坤未定,你我皆是黑马。
展开
-
python 合并两个排序的链表(递归解法)
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000题解# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x#原创 2021-12-27 08:00:00 · 483 阅读 · 0 评论 -
python 递归乘法
递归乘法递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。示例1: 输入:A = 1, B = 10 输出:10示例2: 输入:A = 3, B = 4 输出:12题解 递归解法class Solution: """ 解题思路: 递归法 1. A * B 可分为两种情况讨论, 以A为例: 1.当A为偶数时:可分解为 A // 2 * B + A // 2 * B原创 2021-12-21 08:00:00 · 497 阅读 · 0 评论 -
python 数值的整数次方
解决数值的整数次方问题实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25 提示:-100.0 < x < 100.0-2原创 2021-12-20 08:00:00 · 1538 阅读 · 0 评论 -
python 反转链表
反转链表定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL提供两种解题思路# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# se原创 2021-12-19 08:00:00 · 468 阅读 · 0 评论 -
python 三步问题
三步问题三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。示例1: 输入:n = 3 输出:4 说明: 有四种走法示例2: 输入:n = 5 输出:13提示:n范围在[1, 1000000]之间提供两种题解class Solution: """ 解题思路一:递归解法 1.递推公式为 f(n) = f(n-1) + f(原创 2021-12-18 08:00:00 · 318 阅读 · 0 评论 -
python 从尾到头打印链表
从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]提供三种题解# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: """ 解原创 2021-12-17 08:00:00 · 293 阅读 · 0 评论 -
python 青蛙跳台阶问题
青蛙跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1题解class Solution: """ 解题思路: 递归算法 1.当台阶数为n对应的走法有f(n)种: n-->f(n), n-1--&原创 2021-12-16 08:00:00 · 1396 阅读 · 0 评论 -
python 斐波那契数列
斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出原创 2021-12-15 08:00:00 · 1518 阅读 · 0 评论 -
解决递归中的重复计算问题
一、重叠子问题斐波那契数列没有求最值的问题,因此严格来说它不是最优解问题,当然也就不是动态规划问题。但它能帮助你理解什么是重叠子问题。首先,它的数学形式即递归表达是这样的:def Fibonacci(n): if (n == 0 or n == 1): return n if (n > 1): return Fibonacci(n - 1) + Fibonacci(n - 2)def main(): result = Fibonacci原创 2021-12-14 08:00:00 · 1170 阅读 · 0 评论