Java 如何修改代码以从左到右和从右到左对角搜索多维数组?
我有这段代码用于从左到右和从右到左搜索多维数组 我现在需要做的是从左上到右下、右上到左下、左下到右上、右下到左上搜索数组 我需要对现有方法进行哪些更改,以创建一种新方法来实现我的目标Java 如何修改代码以从左到右和从右到左对角搜索多维数组?,java,arrays,search,matrix,multidimensional-array,Java,Arrays,Search,Matrix,Multidimensional Array,我有这段代码用于从左到右和从右到左搜索多维数组 我现在需要做的是从左上到右下、右上到左下、左下到右上、右下到左上搜索数组 我需要对现有方法进行哪些更改,以创建一种新方法来实现我的目标 // Left to Right public static String findLeftToRight (char[][]board, String word) { char[] letters = word.toCharArray
// Left to Right
public static String findLeftToRight (char[][]board, String word) {
char[] letters = word.toCharArray();
for (int i = 0; i < board.length; i++){
for (int j = 0; j < board[i].length; j++) {
boolean found = true;
for (int k = 0; k < letters.length; k++) {
if ((j+k >= board[i].length) || (letters[k] != board[i][j+k])) {
found = false;
break;
}
}
if (found) {
return "String " + word + " found in row=" + i + " col=" +j;
}
}
}
return "String " + word + " not found";
} // end findLeftToRight
// Right to Left
public static String findRightToLeft (char[][]board, String word) {
char[] letters = word.toCharArray();
for (int i = board.length-1; i > -1; i--){
for (int j = board[i].length-1; j > -1; j--) {
boolean found = true;
for (int k = 0; k < letters.length; k++) {
if ((j - k < 0) || (letters[k] != board[i][j-k])) {
found = false;
break;
}
}
if (found) {
return "String " + word + " found in row=" + i + " col=" +j;
}
}
}
return "String " + word + " not found";
} // end findLeftToRight
//从左到右
公共静态字符串findLeftToRight(字符[][]板,字符串字){
char[]字母=word.toCharArray();
对于(int i=0;i=board[i].长度)| |(字母[k]!=board[i][j+k])){
发现=错误;
打破
}
}
如果(找到){
返回行=“+i+”列=“+j”中的“字符串”+word+”;
}
}
}
返回“字符串”+单词+“未找到”;
}//结束findLeftToRight
//从右向左
公共静态字符串findRightToLeft(char[][]板,字符串字){
char[]字母=word.toCharArray();
对于(int i=board.length-1;i>-1;i--){
对于(int j=线路板[i]。长度-1;j>-1;j--){
布尔值=真;
for(int k=0;k
所以我假设多维数组是一个立方体,这意味着行和列的长度相同
从左上到右
将你想要的与board[i][i]进行比较
从右上到左是
回路相同,但与线路板[length-i][i]比较
对于bot,从左到右上方是
与电路板[i][length-i]比较
对于bot,从右到左上方是
与电路板[length-i][length-i]进行比较
它们都在从i到长度的for循环中