【面试题】剑指offer 2

来源:互联网 发布:南京银行 总行 知乎 编辑:程序博客网 时间:2024/06/05 03:18

题目:在一个二维数组中,每一行从左往右,每一列从上到下都是递增的,给任意值在数组只能查找该数

#include<stdio.h>#include<string.h>#include<stdlib.h>int getsize(int data[]){return sizeof(data);}bool Find(int* matrix,int rows,int cols,int num){bool found=false;if(matrix!=NULL&&rows>0&&cols>0){int row=0;int col=cols-1;while(row<rows&&col>0){if(matrix[row*cols+col]==num)//row*cols+col{found=true;break;}else if (matrix[row*cols+col]>num)//右上角大于num,列左移{--col;}else//右上角小于num,行下移{++row;}}return found;}}//int main()//{//int data1[]={1,2,3,4,5};//int size1=sizeof(data1);//int *data2=data1;//int size2=sizeof(data2);//int size3=getsize(data1);//printf("%d;%d;%d\n",size1,size2,size3);//system("pause");//return 0;//}int main(){int matrix[]={1,2,3,9,2,4,9,12,4,7,10,13,6,8,11,15};int ret=Find(matrix,4,4,10);printf("%d\n",ret);system("pause");return 0;}


0 0
原创粉丝点击