Swift-二维数组中的查找

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,输入一个二维数组中的数字,判断二维书中是否存在,存在返回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)")`
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输...
    913c9536e19a阅读 404评论 0 0
  • 做个记录吧,有什么错误,希望大家帮忙指正一下。可能我写的比较简单,有的东西没有考虑到,也希望大家多多指正。谢谢啦~...
    playman阅读 384评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,739评论 18 399
  • 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输...
    minningl阅读 438评论 0 0
  • 学习 行动 习惯 业力 自由 以积极主动为前提学习改变想法,想法产生行动,行动造就习惯,坚持下去这些好的习惯会变成...
    鹏鹏YH阅读 275评论 1 3