商汤科技跳台阶那题
商汤科技跳台阶那题:
时间复杂度o(n*m),空间复杂度o(m)。大家看看是不是对的。我是已经想到怎么写,不过截止前没调出来。
#include<iostream> #include<vector> using namespace std; int main() { int n,m; cin >> n >> m; vector<int>dp(m+2,0); dp[0] = 1; dp[1] = 1; for (int i = 2; i <= n; i++) { dp[i % (m + 1)] = 0; for (int j = 1; j <= m; j++) { if (i - j >= 0) { dp[i%(m+1)] = (dp[i%(m+1)] + dp[(i-j)%(m+1)]) % 10007; } } } cout << dp[n%(m+1)]; return 0; }
#笔试题目##商汤科技#