当前位置: 首页 > news >正文

焊枪公司网站怎么做深圳网络营销推广中心

焊枪公司网站怎么做,深圳网络营销推广中心,日本特色小镇建设网站,做网站推广要会什么在 Python 3.11 中实现斐波那契数列的常见方式有多种,下面我将展示几种不同的实现方法,包括递归、迭代和使用缓存(动态规划)来优化递归版本。 1. 递归方式(最简单但效率较低) def fibonacci_recursive(n)…

在 Python 3.11 中实现斐波那契数列的常见方式有多种,下面我将展示几种不同的实现方法,包括递归、迭代和使用缓存(动态规划)来优化递归版本。

1. 递归方式(最简单但效率较低)

def fibonacci_recursive(n):if n <= 1:return nreturn fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)# 测试
print(fibonacci_recursive(10))  # 输出 55

这种方式的时间复杂度是 O(2^n),因为每次调用都会递归两次,对于较大的 n,效率较低。

2. 使用缓存优化递归(动态规划 + 记忆化)

使用 Python 的 functools.lru_cache 装饰器,可以将之前计算的结果缓存,避免重复计算。

from functools import lru_cache@lru_cache(maxsize=None)
def fibonacci_memoization(n):if n <= 1:return nreturn fibonacci_memoization(n - 1) + fibonacci_memoization(n - 2)# 测试
print(fibonacci_memoization(10))  # 输出 55

这个版本的时间复杂度是 O(n),空间复杂度也是 O(n),因为每个斐波那契数只会计算一次。

3. 迭代方式(最有效率)

迭代方式可以在 O(n) 的时间内完成,并且只需要常量级的空间 O(1)。

def fibonacci_iterative(n):if n <= 1:return na, b = 0, 1for _ in range(2, n + 1):a, b = b, a + breturn b# 测试
print(fibonacci_iterative(10))  # 输出 55

4. 动态规划方式(使用数组)

这种方式通过数组存储中间结果,也是一种动态规划的实现。

def fibonacci_dp(n):if n <= 1:return ndp = [0] * (n + 1)dp[1] = 1for i in range(2, n + 1):dp[i] = dp[i - 1] + dp[i - 2]return dp[n]# 测试
print(fibonacci_dp(10))  # 输出 55

这个版本的时间复杂度是 O(n),但空间复杂度是 O(n) 因为需要存储每一步的结果。

选择最佳实现

  • 递归:简洁但效率低。
  • 记忆化递归:解决了递归的效率问题。
  • 迭代:最优的时间和空间复杂度。
  • 动态规划(数组):适合需要保存所有中间结果的场景。

大多数情况下,迭代版本 是面试中推荐的最佳解法,因为它时间和空间效率都很好。

http://www.tj-hxxt.cn/news/11174.html

相关文章:

  • 汕头seo优化项目中国网络优化公司排名
  • 响应式旅游网站模版郑州外贸网站推广
  • 用bootstrap做网站管理系统竞价托管外包费用
  • 自己做的网站如何上传电脑培训学校
  • 做长直播的房地产网站宁波seo优化服务
  • 教育网站制作免费网站友情链接
  • 自助做网站傻瓜式自助建站工具网站优化公司排名
  • 低价网站建设联系方式seo1域名查询
  • 会员管理网站模板企业网站的类型
  • 酒店网站建设方案策划书重庆百度总代理
  • 小城镇建设期刊网站免费建立个人网站申请
  • 做网站渠道长春seo外包
  • 江门网站建设兼职网站代理公司
  • 电梯行业网站怎么做上海短视频seo优化网站
  • 建筑资料下载网广州各区正在进一步优化以下措施
  • 个人网站免费空间申请电脑系统优化软件哪个好用
  • 网站建设哪家好nuoweb惠州企业网站seo
  • 佛山网站优化体验模板免费网站建设
  • 买别人做的网站能盗回吗注册域名要钱吗
  • 做网站找公司怎么找seo百度排名优化
  • 震旦集团网站建设电脑培训网上免费课程
  • 南京林业大学实验与建设网站百度pc网页版
  • 南京网站开发南京乐识专业免费建站的网站有哪些
  • 一流小说网站模板网络搜索引擎有哪些
  • 兰州网站推广公司培训总结心得体会
  • 网站项目建设策划方案浙江seo关键词
  • 电脑建设网站在互联网访问sem竞价推广是什么
  • 河南网络科技网站建设网络推广公司排行榜
  • 良精企业网站管理系统源码 后台不能编辑产品株洲企业seo优化
  • 农家乐网站 建设nba最新新闻