码迷,mamicode.com
首页 > 编程语言 > 详细

offer 二维数组查找

时间:2019-08-16 18:50:23      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:col   输入   cto   ++   target   方式   --   二维   size   

  • 二维数组查找:

(1)C语言实现方式:

测试用例:int AA[16]={1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
bool Find1(int * target, int rows,int colums,int number) //输入的行数和列数
{
 int row=0, colum=colums-1; //实时变化的  /下标

    if (target==NULL||rows<=0||colums<=0)//保持
    {
        return false;
    }

  while(row<rows&&colum>=0)
  {

   if(*(target+row*colums+colum)==number)   //退出循环的条件
   {
    return true;
   }
   else if(number< (*(target+row*colums+colum) ))  //注意这里二维数组  乘以colums 才对
   {
       colum--;
   }
   else
   {
        row++;
   }
  }

  return false;

}

 

2.C++实现方式:

原理和上述C实现是一样的

 

bool Find(QVector<QVector<int> > array,int target) {

       int rowCount = array.size(); //外面这层是行    每一行里包含着各个列
       int colCount = array[0].size();

       int i,j;

       for(i=rowCount-1,j=0;i>=0&&j<colCount;)
       {
           if(target == array[i][j])
               return true;
           if(target < array[i][j])
           {
               i--;
               continue;
           }
           if(target > array[i][j])
           {
               j++;
               continue;
           }
       }
       return false;
   }

 

offer 二维数组查找

标签:col   输入   cto   ++   target   方式   --   二维   size   

原文地址:https://www.cnblogs.com/cgy1012/p/11365407.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!