动态规划算法-斐波那契数列模型:2.三步问题

题目链接:面试题 08.01. 三步问题(简单)

算法原理:

解法:动态规划

Java代码:

java 复制代码
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-10-12
 * Time: 22:56
 */
class Solution {
    //面试题08.01.三步问题
    public int waysToStep(int n){
        //1.创建dp表
        //2.初始化
        //3.填表
        //4.返回值
        int MOD=(int)1e9+7;//默认double型
        if(n==1||n==2) return n;
        if(n==3) return 4;
        int[] dp=new int[n+1];
        dp[1]=1;dp[2]=2;dp[3]=4;
        for(int i=4;i<=n;i++)
            //每次加法都要取模
            dp[i]=((dp[i-1]+dp[i-2])%MOD+dp[i-3])%MOD;
        return dp[n];
    }
}
相关推荐
想逃离铁厂的老铁7 小时前
Day42 >> 188、买卖股票的最佳时机IV + 309.最佳买卖股票时机含冷冻期 + 714.买卖股票的最佳时机含手续费
算法·leetcode·职场和发展
chilavert3187 小时前
技术演进中的开发沉思-317 JVM:指令集(下)
开发语言·python
wu_asia7 小时前
方阵对角线元素乘积计算
数据结构·算法
不绝1918 小时前
C#核心——面向对象:封装
开发语言·javascript·c#
想逃离铁厂的老铁8 小时前
Day43 >> 300.最长递增子序列 + 674. 最长连续递增序列+ 718. 最长重复子数组
数据结构·算法
Yzzz-F8 小时前
P6648 [CCC 2019] Triangle: The Data Structure [st表]
算法
yaoxin5211238 小时前
294. Java Stream API - 对流进行归约
java·开发语言
ghie90908 小时前
基于MATLAB的演化博弈仿真实现
开发语言·matlab
曹轲恒8 小时前
Thread.sleep() 方法详解
java·开发语言
aini_lovee8 小时前
基于Qt实现CAN通信上位机
开发语言·qt