gpt4 book ai didi

java - 无限递归帮助 - Java

转载 作者:行者123 更新时间:2023-12-01 21:58:43 26 4
gpt4 key购买 nike

好吧,我有一个小错误 - 似乎我在尝试解决的程序中遇到了无限递归。所以基本上,您读入一个数组,然后获取这些值,将它们随机加载到二维数组中。我已经为该程序完成了所有设置和其他方法,但我的递归方法似乎进入了无限递归。我的编译器不会告诉我它出了什么问题,除了递归语句上的错误之外,我看不到实际的输出。我以前做过类似的问题,这是第一次发生这个错误,有人能指出我正确的方向吗?

public class Grid
{
private String[][] grid;
private int tempCount = 0;

public Grid()
{
grid = new String[10][10];
}
public Grid(int rows, int cols, String[] vals)
{
setGrid(rows, cols, vals);
}
public void setGrid(int rows, int cols, String[] vals)
{
grid = new String[rows][cols];
for(int r = 0; r < grid.length; r++)
for(int c = 0; c < grid[r].length; c++)
grid[r][c] = vals[(int)(Math.random() * vals.length)];
}
public int findMax(String val)
{
int max = 0;
for(int r = 0; r < grid.length; r++)
{
for(int c = 0; c < grid[r].length; c++)
{
if(grid[r][c].equals(val))
{
tempCount = 0;
int temp = findMaxHelper(r, c, val);
if(max < temp)
max = temp;
}
}
}
return max;
}
private int findMaxHelper(int r, int c, String search)
{
if(r < grid.length && r >= 0 && c < grid[r].length && c >= 0 && grid[r][c].equals(search))
{
tempCount++;
findMaxHelper(r - 1, c, search);
findMaxHelper(r + 1, c, search);
findMaxHelper(r, c - 1, search);
findMaxHelper(r, c + 1, search);
}
return tempCount;
}
public String toString()
{
String output = "";
for(int r = 0; r < grid.length; r++)
{
for(int c = 0; c < grid[r].length; c++)
output += grid[r][c] + " ";
output += "\n";
}
return output;
}
}

最佳答案

问题是这样的:假设我们有一个尺寸为 2x1 的简单数组,值为 ["5", "5"]。建议我们寻找“5”。然后它将进入前五名。从那里开始,它将检查其所有邻居。因此它将到达第二个五个,从那里它将再次搜索所有邻居。因此它将命中前五个,从那里它将再次搜索所有邻居。因此它将到达第二个五个,从那里它将再次搜索所有邻居。因此它将命中前五个,从那里它将再次搜索所有邻居。因此它将到达第二个五个,从那里它将再次搜索所有邻居。因此它将命中前五个,从那里它将再次搜索所有邻居。

...你得到了模式^^

关于java - 无限递归帮助 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com