拆车件网上商城,小时seo加盟,小程序入口在哪里,wordpress单点登陆本题题目链接备战技术面试#xff1f;力扣提供海量技术面试资源#xff0c;帮助你高效提升编程技能#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/three-steps-problem-lcci/ 个人主页#xff1a;Lei宝啊
愿所有美好如期而遇 动态规划力扣提供海量技术面试资源帮助你高效提升编程技能轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/three-steps-problem-lcci/ 个人主页Lei宝啊
愿所有美好如期而遇 动态规划如果真要清楚理解的话可能一开始学习不太可能专有名词太多我们就先简单理解。
状态表示状态转移方程初始化填表顺序返回值也就分这么几个步骤也许你不理解那就对了我们分开简单说。
状态表示也就是建一个数组我们叫做dp表(动态规划缩写)数组每个值都对应一个状态本题来说数组的第一个元素为0表示没有方法在原地第一个元素为1表示只有一种方法第二个元素为2表示我们可以一格格跳以及一次跳两格这两种方法这就是dp表每个值的状态。我们如何得到他的状态经验题目分析(这不是废话嘛)简单来说多做题上百道就差不多有感觉了(滑稽)。
状态转移方程就是dp[i]等于什么我们这里写出前几个就能够看出来0,1,2,4,7,13。
初始化给初始的几个状态赋值。
填表顺序就是根据状态转移方程填dp表。
返回值返回哪个位置的值呢由你决定。
class Solution {
public:int waysToStep(int n) {long long result 0;long long a 1, b 2, c 4;if(n 1) return 1;if(n 2) return 2;if(n 3) return 4;for(int i3; in; i){result (a b c) % 1000000007;a b;b c;c result;}return result;}
};