Every day a Leetcode
题目来源:3179. K 秒后第 N 个元素的值
解法1:模拟
模拟 k 轮,数组保存上一次结果,然后计算当前轮次的结果。
代码:
/*
* @lc app=leetcode.cn id=3179 lang=cpp
*
* [3179] K 秒后第 N 个元素的值
*/
// @lc code=start
class Solution
{
private:
const int MOD = 1e9 + 7;
public:
int valueAfterKSeconds(int n, int k)
{
int a[n];
for (int i = 0; i <= k; i++)
{
for (int j = 0; j < n; j++)
{
if (j == 0 || i == 0)
a[j] = 1;
else
a[j] = (a[j] + a[j - 1]) % MOD;
}
}
return a[n - 1];
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(n*k)。
空间复杂度:O(n)。