递归栈溢出
查看原帖
递归栈溢出
1035847
Tomatos03楼主2023/11/30 11:15

代码只能够过前面两个测试点,后面的代码全部RE ,输入数据10000 100栈溢出。

我写的递归该怎么优化?

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import static java.lang.Math.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String[] nums = in.readLine().split(" ");
		int n = Integer.parseInt(nums[0]);
		int k = Integer.parseInt(nums[1]);
		int[] dp = new int[n +  1];
		System.out.println(wayNumber(n,k,dp));
		in.close();
	}
	static private int wayNumber(int n, int k, int[] dp) {
		if (n == 0) {
			return 1;
		}
		if (dp[n] != 0) {
			return dp[n];
		}
		int sum = 0;
		for (int i = 1; i <= min(k, n); i++) {
			sum += wayNumber(n - i, k, dp);
			if (sum >= 100003) {
				sum %= 100003;
			}
		}
		dp[n] = sum;
		return sum;
	}
}
2023/11/30 11:15
加载中...