此題考查楊氏矩陣的搜索,這裏採用的是Step-wise線性搜索解法,其餘的方法可參考http://blog.csdn.net/pi9nc/article/details/9082997
以下爲完整的程序:
#include<iostream>
#include<vector>
using namespace std;
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int row=matrix.size();
int col =matrix[0].size();
int i=0,j=col-1;
int value=matrix[i][j];
while(true){
if(value==target)
return true;
else if(value<target&&i<row-1)
value=matrix[++i][j];
else if(value>target&&j>0)
value=matrix[i][--j];
else
return false;
}
}
int main(){
vector< vector<int> > intVV;
vector<int> intV;
int i,j,v;
for(i=1;i<6;i++){
intV.clear();
for(j=0;j<5;j++)
{
intV.push_back(i+j*3);
}
intVV.push_back(intV);
}
for(i=0;i<5;i++){
for(j=0;j<5;j++)
cout<<intVV[i][j]<<" ";
cout<<endl;
}
while(cin>>v){
bool result=searchMatrix(intVV,v);
cout<<result<<endl;
}
return 0;
}