二维数组查找

二维数组查找

题目描述

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

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var array = [
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8],
[5, 6, 7, 8, 9]
]
//解法一
function Find(target, array) {
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < array[0].length; j++) {
if (array[i][j] == target) {
return true;
}
}
}
return false;
}
//解法2
function Findplus(target,array){
const row=array.length;
const col=array[0].length;
var rownum=row-1;
var colnum=0;
if(rownum==0&&colnum==0){
return false;
}
else{
while(rownum>=0&&colnum<=col-1){
if(array[rownum][colnum]<target){
colnum++;
}
else if(array[rownum][colnum]>target){
rownum--;
}
else{
return true;
}
}
}
}
var a = Find(6, array)
console.log(a)