4 二维数组中的查找 JavaScript

题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
 

根据题目要求,这个矩阵有它自己的特点,每行从左到右递增,从上到下递增,于是,我们可以利用这个信息来简化原本的计算思路。
思路:
首先选取数组中右上角的数字。如果该数字等于要查找的数字,则结束查找。
如果该数字大于要查找的数字,就去掉该数字所在的列。
如果该数字小于要查找的数字,就去掉该数字所在的行。
通过上述思路减少查找范围,直到找到要查找的数字,或者找不到。
  • 代码:
 1 function Find(target,array){
 2       var row = array.length;
 3       var i = row - 1;
 4       var j = 0;
 5       while(i>=0&&array[i][j]){
 6          if(array[i][j]>target) {
 7              i--;
 8          } else if(array[i][j] < target) {
 9             j++;
10         } else{
11            return true;
12        }
13    }
14    return false;
15 }

 

 
 
  • 暴力枚举
 1 function Find(target, array)
 2 {
 3     for (let arr of array) {
 4         for (let j of arr) {
 5             if (j == target) {
 6                 return true;
 7             }
 8         }
 9     }
10     return false;
11 }

 

 
 
posted @ 2018-10-13 14:04  BoxIn  阅读(370)  评论(0编辑  收藏  举报