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

递归基础斐波那契数(LeetCode——509.斐波那契数)

今天我们来学习一下递归:

什么是递归

  递归的核心思想是将一个复杂的问题分解成更小的、相似的子问题,直到这些子问题简单到可以直接解决。。在每个递归调用中,都会检查是否满足基本情况,如果满足,则返回一个直接的值,不再进行递归调用。没有基本情况,递归将无限进行下去,导致栈溢出错误。这是函数调用自身的过程。在这一步,问题被分解成更小的子问题,每个子问题都是原始问题的一个更小的版本。确保递归能够在有限的步骤内结束。通常通过基本情况来实现。

递归实例:

一个经典的递归例子是计算阶乘(n!),阶乘定义为所有小于或等于n的正整数的乘积。

public int factorial(int n) {
    if (n == 0) { // 基本情况
        return 1;
    } else {
        return n * factorial(n - 1); // 递归步骤
    }
}

 力扣题目

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=O83Ahttps://leetcode.cn/problems/fibonacci-number?envType=problem-list-v2&envId=recursion递归解法:

class Solution {
    public int fib(int n) {
        if (n == 0) {
            return 0;
        }
        if (n == 1) {
            return 1;
        }
        int x = fib(n - 1);
        int y = fib(n - 2);
        return x + y;
    }
}

时间复杂度太高了,动态规划的时间复杂度会更低,可以初步了解一下,解法如下:

class Solution {
    public int fib(int n) {
        if(n==0){
            return 0;
        }
        if(n==1){
            return 1;
        }
        int a=0;
        int b=1;
        for(int i=2;i<=n;i++){
            int c=a+b;
            a=b;
            b=c;
        }
        return b;
    }
}

 

 

 

 


http://www.kler.cn/a/398726.html

相关文章:

  • 基于python Django的boss直聘数据采集与分析预测系统,爬虫可以在线采集,实时动态显示爬取数据,预测基于技能匹配的预测模型
  • 《Python 网络爬虫》
  • Lua资料
  • 使用WebSocket技术实现Web应用中的实时数据更新
  • 大数据-226 离线数仓 - Flume 优化配置 自定义拦截器 拦截原理 拦截器实现 Java
  • 消息队列原理面试题及参考答案
  • 刘艳兵-DBA043-什么是“虚拟列索引”?
  • 如何查看电脑支持的最大内存
  • 【Linux内核剖析】深入分析inet_init的处理机制
  • 自动驾驶系列—深入解析自动驾驶车联网技术及其应用场景
  • 说说TCP传输的三次握手四次挥手策略
  • [369]基于springboot的高校教师教研信息填报系统
  • Infisical开源密钥管理平台实战指南
  • 《Python 网络爬虫》
  • ‌DNN(深度神经网络)和CNN(卷积神经网络)区别
  • Cursor安装Windows / Ubuntu
  • 新160个crackme - 098-DueList.4
  • Ubuntu 的 ROS 操作系统 turtlebot3 导航仿真
  • 走进嵌入式开发世界
  • NoSQL大数据存储技术测试(4)Cassandra的原理和使用
  • InfluxDB时序数据库笔记(一)
  • vue2项目中在线预览csv文件
  • Brave127编译指南 Windows篇:部署Node.js(五)
  • 云计算虚拟化-kvm创建虚拟机
  • Spring Boot框架助力电商系统设计
  • 3. langgraph中的react agent使用 (在react agent添加系统提示)