int linearDp(int n) {
int[] dp = new int[n + 1];
dp[0] = base();
for (int i = 1; i <= n; i++) {
dp[i] = transition(i, dp);
}
return dp[n];
}
def linear_dp(n: int) -> int:
dp = [0] * (n + 1)
dp[0] = base()
for i in range(1, n + 1):
dp[i] = transition(i, dp)
return dp[n]
def linearDp(n: Int): Int =
val dp = Array.fill(n + 1)(0)
dp(0) = base()
for i <- 1 to n do dp(i) = transition(i, dp)
dp(n)
int linearDp(int n) {
std::vector<int> dp(n + 1);
dp[0] = base();
for (int i = 1; i <= n; i++) {
dp[i] = transition(i, dp);
}
return dp[n];
}