Gsupl.落浅~zbxGsupl.落浅~

01:56:05 AM

哥伦布

13°

LeetCode算法—递归

Gsupl.落浅·2024-09-12 22:35·10 次阅读

LeetCode算法—递归

一:递归

1、定义:函数直接或者间接的调用自己

2、四个要素

(1)接受的参数

(2)返回的值

(3)终止条件

(4)如何拆解

二:LeetCode

509 斐波那契数列

Copy
def func(n): if n<2: return n else: return func(n-1)+func(n-2) n=int(input()) print(func(n))

206 反转链表

Copy
class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solution: def reverseList(self, head: ListNode) -> ListNode: # 基准条件:空链表或者只有一个节点的链表 if not head or not head.next: return head # 递归反转子链表 new_head = self.reverseList(head.next) # 将当前节点连接到反转后的子链表末尾 head.next.next = head head.next = None # 返回新的头节点 return new_head

344 反转字符串

Copy
#方法1 切片法 #方法2 双指针 # class Solution: # def func(self,s): # left,right=0,len(s)-1 # while left<=right: # s[left],s[right]=s[right],s[left] # left+=1 # right-=1 # return s #方法3 递归的方法 class Solution: def reverseString(self, s: List[str], left: int = 0, right: int = None) -> None: if right is None: right = len(s) - 1 # 基本条件:当左指针不再小于右指针时,停止递归 if left >= right: return # 交换左右指针所指的元素 s[left], s[right] = s[right], s[left] # 递归处理下一个子数组 self.reverseString(s, left + 1, right - 1)
posted @   Gsupl.落浅~  阅读(10)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示

目录导航

一:递归
二:LeetCode