package
{
/**
* 题目 在一个二位数组中,每一行都按照从左到右递增顺序排序,每一列都按照从上到下顺序排序,请完成一个函数,输入这样的一个二位数组和一个整数,判断数组中是否含有该整数
* */
import flash.display.Sprite;
public class Main extends Sprite
{
public function Main()
{
var testArray:Array = [
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15],
];
var result:Array = isHasNum(testArray,7,0,testArray[0].length-1,0);
if(result[0]==true){
trace("true x:"+result[1]+" y:"+result[2] +" count:"+result[3]);
}else{
trace("false count:"+result[3]);
}
}
private function isHasNum(arr:Array,num:int,sX:uint,sY:uint,count:uint = 0):Array{
count++;
var found:Boolean = false;
if(arr[sX][sY] == num){
found = true;
}
if(found == false){
if(arr[sX][sY]>num){
//大于目标数,在左侧
if(sY-1<0){
return [found,0,0,count];
}
return isHasNum(arr,num,sX,sY-1,count);
}else{
//小于目标数
if(sX+1>arr.length){
return [found,0,0,count];
}
return isHasNum(arr,num,sX+1,sY,count);
}
}
return [found,sX,sY,count];
}
}
}
AS3 面试3 二维数组中查找 递归版
最新推荐文章于 2022-05-25 21:38:32 发布