一、知识点:
动态规划(DP)
二、文字分析:
- 动态规划:我们使用一个数组dp来保存每个阶段的计算结果,通过递推关系dp[i] = i * dp[i-1]来计算。最后返回dp[n]的结果。
- 时间复杂度为O(n)
三、编程语言:
java
四、正确代码:
public class Solution { public int factorial(int n) { long result = 1; for (int i = 2; i <= n; i++) { result = (result * i) % 1000000007; } return (int)result; } }