题解 | 牛牛学数列6
牛牛学数列6
https://www.nowcoder.com/practice/b6321648517247b2ac2e2f80cbc63ae1
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
// 调用方法计算并输出结果
System.out.println(calculateAn(n));
scanner.close();
}
// 计算数列 An 的方法
public static int calculateAn(int n) {
if (n == 1) {
return 0;
} else if (n == 2 || n == 3) {
return 1;
} else {
// 用于存储前面计算的结果,避免重复计算
int[] dp = new int[n + 1];
dp[1] = 0;
dp[2] = 1;
dp[3] = 1;
for (int i = 4; i <= n; i++) {
dp[i] = dp[i - 3] + 2 * dp[i - 2] + dp[i - 1];
}
return dp[n];
}
}
}
#你投了多少家公司?进展是___##牛客创作赏金赛#算法轻松拿捏 文章被收录于专栏
聚焦面试高频算法题,解析解题思路,强化实战练习,助你轻松应对算法考试与面试挑战。