Creep_guy

码农养成记

刷题之路之二维数组查找数据

</pre><p></p><pre name="code" class="cpp">

给定一个二维数组,每行递增,每列递增。

4    5    6       8 

7     8     9       10 

9   12   15    17

12 13  16   20


如 二维数组,随机给出的一个二维数组。


代码如下   

  

 boolen search(int *data,int rows,int columns,int number)

{    

        boolen find=flase;

if(data==NULL||cows<=0||colmuns<=0)

return flase

     int row=0;

      int colmun=colmun-1;

while(row<rows&&colmun>=0)

{

if(data[row*colmuns+colmun==number){   break;)

               else if (data[row*colmuns+colmun>number)

  colmun--;

               else

                           row++:

}


return find;

}




           每次比较矩阵最右边的数字,因为该数字较特殊,为该行的最大值,该列的最小值。每次每次循环通过比较待查的数,可以缩小矩阵的查找范围。

      注意,二维数组中值定位运算。




  

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/firework333/article/details/49950739
文章标签: 二维数组 查找
个人分类: 剑指offer
上一篇剑指offer 之 partition函数运用
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭