Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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_Search_Multidimensional Array - Fatal编程技术网

我正在尝试以垂直模式从右下角到左上角搜索java多维数组?我的代码有什么问题?

我正在尝试以垂直模式从右下角到左上角搜索java多维数组?我的代码有什么问题?,java,search,multidimensional-array,Java,Search,Multidimensional Array,我试图从右下角到左上角搜索java多维数组,查找一个垂直模式的单词,但它找不到该单词。我做错了什么 public static String findBottomToTop(char[][] board, String word) { char[] letters = word.toCharArray(); if (letters.length <= board.length) { int lettersIndex =

我试图从右下角到左上角搜索java多维数组,查找一个垂直模式的单词,但它找不到该单词。我做错了什么

      public static String findBottomToTop(char[][] board, String word) {
        char[] letters = word.toCharArray();

        if (letters.length <= board.length) {
            int lettersIndex = 0;

            for (int i = board.length-1; i > -1; i--) {

                for (int j = board[i].length-1; j > -1; j--) {
                    if (board[i][j] == letters[0]) {
                        lettersIndex++;

                        for (int k = 0; k < letters.length; k++) {
                            if (j > board[k].length && board[k][j] == letters[lettersIndex]) {
                                lettersIndex++;

                                if (lettersIndex == letters.length) {
                                    return "String " + word + " found in row=" + i + " col=" + j;
                                }
                            } else {
                                // breaks
                                lettersIndex = 0;
                                break;
                            }
                        }
                    }// found first
                }
            }
        }
        return "String " + word + " not found";
    }
公共静态字符串findBottomToTop(char[][]板,字符串字){
char[]字母=word.toCharArray();
if(字母长度-1;i--){
对于(int j=线路板[i]。长度-1;j>-1;j--){
if(board[i][j]==字母[0]){
lettersIndex++;
for(int k=0;kboard[k]。长度和board[k][j]==字母[lettersIndex]){
lettersIndex++;
if(字母索引==字母长度){
返回行=“+i+”列=“+j”中的“字符串”+word+”;
}
}否则{
//中断
字母索引=0;
打破
}
}
}//最先发现
}
}
}
返回“字符串”+单词+“未找到”;
}
您需要切换

   for (int i = board[0].length-1; i > -1; i--) {

       for (int j = board.length-1; j > -1; j--) {
您希望在最右角循环,直到行,然后向左移动并执行相同的操作。只需更改循环的逻辑。

如果(j>board[k].length&&board[k][j]==字母[lettsindex])
。。。那里的某个地方不应该有一个
i
吗?
j
不应该小于
board[k]。第14行的长度
?还有,你不是说你想垂直搜索吗<代码>线路板[k][j]
,如果
k
从0开始,则无法实现此目标。。。