gpt4 book ai didi

java - 如何使用递归搜索二维数组中的元素

转载 作者:行者123 更新时间:2023-12-01 13:16:23 25 4
gpt4 key购买 nike

我有一个二维字符数组,我正在尝试使用递归查找特定字符。

public class Test {

char arry [][] = {{'1',' ','B'},
{'C','K','M'},
{'H','R','P'}
};

public Test(){
recursion(0,0,arry[0][0]);

}
private void recursion(int row, int col, char c) {
if(c==' '){
System.out.print("Location: " + row + " " + col );
}else
{
if(col+1<arry[0].length){
recursion(row,col,c);
}
//System.out.print(arry[0][1]);

}

}
public static void main(String[] args) {

new Test();
}

}

但这给了我一个堆栈溢出。如何使用递归在二维数组中找到元素。

最佳答案

您的 if 语句似乎没有正确执行。您正在检查 if c == "",尽管我认为您的意思是检查 if array[row][col]==c。另外,似乎您从未真正增加 row 和 col 的值,因此递归本身不断发生。由于递归值永远不会改变,并且检查永远不可能为真,这最终将导致堆栈溢出。

尝试以下方法:

private void recursion(int row, int col, char c) {
if(array[row][col]==c){
System.out.print("Location: " + row + " " + col );
} else {
if(col+1<array[0].length){
recursion(row,col+1,c);
} else if(row + 1<array[1].length){
recursion(row+1,0,c);
} else {
System.out.print("Does not exist");
//System.out.print(arry[0][1]);
}
}
}

关于java - 如何使用递归搜索二维数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22434762/

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