版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wx1458451310/article/details/88078569
code:
#include <iostream>
#include <vector>
using namespace std;
#define M 3
#define N 4
//在行列都排好序的矩阵中找数
//一般从右上角开始,如果角点比目标数小,那么划去一行,如果比目标数大,划去一列
//划去一行
bool mysearch(vector< vector<int> > arr,int num)
{
int r=0, c=arr[0].size()-1;
while( r<arr.size() && c>=0)
{
if ( arr[r][c] > num)
c--;
else if( arr[r][c] < num)
r++;
else
return true;
}
return false;
}
int main()
{
int test[M][N] = {1,3,5,6,2,5,7,9,4,6,8,10};
vector< vector<int> > arr(M,vector<int>(N));
for(int i=0;i<M;i++)
for (int j=0;j<N;j++)
arr[i][j] = test[i][j];
int num;
cin>>num;
bool res = mysearch(arr,num);
cout<<res<<endl;
system("pause");
return 0;
}