在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,输入一个二维数组中的数字,判断二维书中是否存在,存在返回true,不存在返回false~
查询:
class SearchDimension: NSObject {
func searchNumber(data:Array<AnyObject>,number:NSInteger)->Bool{
if data.count>0 && data[0].count>0 {
var row=0
let rows=data.count
let columns=data[0].count
var column=columns-1
while row<rows && column>=0 {
let rightValue=data[row][column] as! NSInteger
//存在
if rightValue==number {
print("current row:\(row)--current column:\(column)")
return true
} else if rightValue>number {//数值小于右上角的值,排除一列
column=column-1
} else {//数值大于右上角的值,排除一列
row=row+1
}
}
}
return false;
}
}
测试代码:
var data=[[1,2,6,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
var search=SearchDimension()
var number=6
var isExist = search.searchNumber(data, number: number)
print("FlyElephant:data contains \(number) is \(isExist)")`