问题描述
我遇到了一个小问题,必须使用1d Integer数组作为缓存来解决二项式系数。到目前为止,这是我的代码:
static public int computeCached(int n,int k) throws ArithmeticException,IllegalArgumentException {
if(n < 0 || k < 0 || n < k)
throw new IllegalArgumentException("Illegal");
int cache[] = new int[n + 1];
return computeCached(n,k,cache);
}
static int computeCached(int n,int k,int []cache) throws ArithmeticException {
if(k == 0 || n == k)
return 1;
if(cache[n] != 0)
return cache[n];
cache[n] = Math.addExact(computeCached(n-1,cache),computeCached(n-1,k-1,cache));
return cache[n];
}
应该存储计算出的值,然后在顶部为下一次迭代添加下一个值。 不知何故,它不能在缓存中保存正确的值,我似乎找不到问题。 谢谢:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)