我有这个 Java 问题,我怀疑它与更高级别的算法有关,但我的搜索无法找到任何实用的东西。
您构造一个数组,如下所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
基本上,A i,j = A i-1,j-1 +A i-1,j。它应该返回索引 (l, c) 处的元素:对于 (4, 1) 它应该返回 4,(5, 2) 返回 10,等等。我的解决方案很简单,但这还不够:
static long get(int l, int c){
long[][] matrix = new long[l+1][l+1];
matrix[0][0]=1;
matrix[1][0]=1;
matrix[1][1]=1;
for(int i=2;i<=l;i++){
matrix[i][0]=1;
for(int j=1;j<=i;j++){
matrix[i][j] = matrix[i-1][j-1]+matrix[i-1][j];
}
}
return matrix[l][c];
}
它不适用于较大的 l 和 c 值。使用 BigInteger 不起作用。我的搜索导致我进行循环倾斜和标量化,但我不知道从哪里开始。任何朝着正确方向发展的方向都值得赞赏。
PS:对不起新手,这是我的第一个问题!