【问题标题】:I am trying to search my java multidimensional array from bottom right to top left going in a vertical pattern? What is wrong with my code?我正在尝试以垂直模式从右下角到左上角搜索我的 java 多维数组?我的代码有什么问题?
【发布时间】:2014-12-04 15:09:04
【问题描述】:

我正在尝试从右下角到左上角搜索我的 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";
    }

【问题讨论】:

  • if (j &gt; board[k].length &amp;&amp; board[k][j] == letters[lettersIndex]) ... 那里不应该有一个i 吗?
  • 第 14 行中的 j 不应该小于 board[k].length吗?另外,你不是说要垂直搜索吗? board[k][j]k 从 0 开始,将无法实现...

标签: java search multidimensional-array


【解决方案1】:

你需要切换

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

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

你想在最右边的角落循环遍历行,然后向左移动并做同样的事情。只需更改循环的逻辑即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 2014-12-05
    • 2019-07-10
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 2021-12-21
    相关资源
    最近更新 更多