数组—二维数组中的查找
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目分析
思路(一)
二维数组x方向的长度为array.length,y方向上的长度为array[0].length,从左下角开始找,如果比目标值小,则在同一行找j++,如果比目标值大,则往上一行找i++
function Find(target, array)
{
// write code here
lenX = array.length;
lenY=array[0].length;
i=lenX-1;
j=0;
for(i=lenX-1,j=0;i>=0&&j<lenY;){
if (target > array[i][j]) {
j++;
}
else if (target < array[i][j]) {
i--;
}
else {
return true;
}
}
return false
}
完整代码显示
while(line=readline())获得所有行的输入
while(line=readline()){
var index = line.indexOf(',');
var left = parseInt(line.substring(0,index));
var right = JSON.parse(line.substring(index+1));
print(Find(left,right))
}
function Find(target, array){
// write code here
lenX = array.length;
lenY = array[0].length;
for (var i = lenX - 1, j = 0; i >= 0 && j < lenY;) {
if (target > array[i][j]) {
j++;
}else if (target < array[i][j]) {
i--;
}else {
return true;
}
}
return false
}
思路(二)
简单粗暴遍历的方法
function Find(target, array)
{
// write code here
lenX = array.length;
lenY=array[0].length;
for(i=0;i<lenX;i++){
for(j=0;j<lenY;j++){
if(array[i][j]==target){
return true;
}
}
}
return false
}