我有一个递归方法,我相当肯定是有限的。但是,当我运行它时,我收到堆栈溢出错误。是否有另一种可能的方法来获得我正在做的堆栈溢出或该方法有什么问题?
public static void solve(int row, int column){
if (row<=8){
if (column>8){
solve(row+1, 0);
}
if (row<=8 && column<=8 && (Rows[row][column]==0)){
for (int a = 1; a<=9;a++){
if (check(row, column, a)==false&&Rows[row][column]!=a){
Rows[row][column]=a;
break;
}
}
}
solve(row, column+1);
}
}
答案 0 :(得分:2)
JVM中的堆栈大小有限,因此可以通过有限递归获得StackOverflow,甚至不需要任何递归。
您可以使用-Xss
选项增加JVM堆栈大小:
java -Xss16M YouMainClass