二维数组中的查找

来源:互联网 发布:cydia软件源微信抢红包 编辑:程序博客网 时间:2024/06/07 17:16
时间限制:1秒空间限制:32768K热度指数:343751
本题知识点:查找



算法知识视频讲解

题目描述

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
  • 笔记
  • 收藏
  • 纠错

//解一:二分//n*logn public boolean Find(int target, int [][] array) {          int l,r,m;          boolean flag=false;          for(int i=0,n=array.length;i<n;++i){              l=0;              r= array[i].length-1;              m = (l+r)/2;              while(r>=l){                  if(array[i][m]==target){                      flag = true;                  }                  if(array[i][m]>target){                      r = m-1;                  }else{                      l = m+1;                  }                  m = (l+r)/2;              }              if(flag)                  break;          }            return flag;    }
//解二  public boolean Find(int target, int [][] array) {        boolean flag = false;        int c= 0;        int r = array[0].length-1;        int n = array.length-1;        while(c<=n&&r>=0){            if(array[c][r]<target){                c++;            }else if(array[c][r]>target){                r--;            }else{                flag = true;                break;            }        }        return flag;    }