Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修改代码以从左到右和从右到左对角搜索多维数组?_Java_Arrays_Search_Matrix_Multidimensional Array - Fatal编程技术网

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循环中