题解 | #二维数组中的查找#
二维数组中的查找
http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
计算vector二维数组的行:array.size()
计算vector二维数组的列:array[0].size()
注意行列为0的数组
// 测试代码
#include<iostream>
using namespace std;
int main(){
// int arr[4][4] = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
int arr[1][2] = {{1,1}};
int n,i,j;
cin >> n;
int row = sizeof(arr) / sizeof(arr[0]);
int line = sizeof(arr[0]) / sizeof(arr[0][0]);
cout << row << "," << line << endl;
i = 0;
j = 0;
while(i < row && j < line){
cout << i << "," << j << endl;
if(arr[i][j] == n){
cout << "true";
return 0;
}else if(arr[i][j] < n && j == line - 1){
i++;
}else if(arr[i][j] < n && j < line - 1){
j++;
}
else if(arr[i][j] > n && arr[i][j-1] < n){
j--;
i++;
}else if(arr[i][j] > n && arr[i][j-1] == n){
cout << "true";
return 0;
}else{
j--;
}
}
cout << "false";
return 0;
}
using namespace std;
int main(){
// int arr[4][4] = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
int arr[1][2] = {{1,1}};
int n,i,j;
cin >> n;
int row = sizeof(arr) / sizeof(arr[0]);
int line = sizeof(arr[0]) / sizeof(arr[0][0]);
cout << row << "," << line << endl;
i = 0;
j = 0;
while(i < row && j < line){
cout << i << "," << j << endl;
if(arr[i][j] == n){
cout << "true";
return 0;
}else if(arr[i][j] < n && j == line - 1){
i++;
}else if(arr[i][j] < n && j < line - 1){
j++;
}
else if(arr[i][j] > n && arr[i][j-1] < n){
j--;
i++;
}else if(arr[i][j] > n && arr[i][j-1] == n){
cout << "true";
return 0;
}else{
j--;
}
}
cout << "false";
return 0;
}