美文网首页
剑指Offer(一):二维数组中查找

剑指Offer(一):二维数组中查找

作者: 八格哚 | 来源:发表于2021-01-07 16:47 被阅读0次

    问:在一个二维数组中,每一行都是从左到右递增的排列顺序,每一列都是从上到下递增的排列顺序。 请写一个函数,实现输入一个二维数组和整数,判断数组中是否含有该整数。

    解:简述思路 - 选取该二维数组最右上角的数字元素,如果该数字等于输入的数字,查找结束;如果该数字大于输入的数字,则忽略该数字所在的列;反之,如果该数字小于输入的数字,则忽略该数字所在的行。

    代码实现如下(JavaScript):

    function find(arr, number) {
      let rows = arr.length;
      let columns = arr[0].length;
      if (rows > 0 && columns > 0) {
        let row = 0;
        let col = columns - 1;
        while (row < rows && col >= 0) {
          if (number === arr[row][col]) {
            return true;
          } else if (number < arr[row][col]) {
            col -= 1;
          } else {
            row += 1;
          }
        }
      }
      return false;
    }
    

    相关文章

      网友评论

          本文标题:剑指Offer(一):二维数组中查找

          本文链接:https://www.haomeiwen.com/subject/dlizoktx.html