题目:

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

思路:

二维数组的定义:二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。 ~~

  首先选择数组左下角的数字作为起点。如果该数字等于要查找的数字,则输出且查找过程结束。如果该数字小于要查找的数字,则剔除整列;如果该数字大于要查找的数字,剔除这个数字所在的行。即如果要查找的数字不在数组的左下角,每一次在数组的查找范围中剔除一行或者一列。也就是要每一步都可以缩小查找的范围,直到找到要查找的那个整数。

JS代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function Find(target, array)
{
// write code here
const n= array.length,
m = array[0].length;
let row = n-1,
col = 0;
if(m === 0&& n ===0){
return false;
}
while(row >= 0&& col <= m-1){
if (array[row][col]>target){
row--;
}else if (array[row][col]<target){
col ++;
}else return true;
}
return false;
}


本站访问量为: 次 。