【1】二维数组中的查找
2016-06-19 09:40
381 查看
【1】二维数组中的查找
1二维数组中的查找vs2010调试代码块
牛客网提交的代码块
时间限制:1秒空间限制:32768K
本题知识点: 查找
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
输入描述:
array: 待查找的二维数组
target:查找的数字
输出描述:
查找到返回true,查找不到返回false
[ 牛客网题目链接 ]
vs2010调试代码块
#include <iostream> #include <vector> using namespace std; bool IsFound( vector< vector< int > > array, int target ) { //cout<<Array.size()<<endl; //cout<<Array[0].size()<<endl; int row=array.size(); //获取数组的行列 int col=array[0].size(); int PRow=0; //初始搜索位置 int PCol=col-1; for(; PRow<row && PCol>=0; ) //列不能左,行不能下时停止 { //cout<<array[PRow][PCol]<<endl; if( target<array[PRow][PCol] ) PCol--; else if( target>array[PRow][PCol] ) PRow++; else return 1; } return 0; } //int a0[3][4]={ // {1, 2, 3, 4}, // {5, 6, 7, 8}, // {9, 10, 11, 12} //}; int a0[1][1]={{1}}; int aim=1; int main() { int M=1, N=1; vector< vector< int > > a(M, vector<int>(N)); for(int i=0; i<M; i++) //将数组内容转到容器中 { for(int j=0; j<N; j++) { a[i][j]=a0[i][j]; } } for(int i=0; i<M; i++) //输出容器中元素 { for(int j=0; j<N; j++) cout<<a[i][j]<<"\t"; cout<<endl; } cout<<IsFound( a, aim); }
牛客网提交的代码块
class Solution { public: bool Find(vector<vector<int> > array,int target) { //cout<<Array.size()<<endl; //cout<<Array[0].size()<<endl; int row=array.size(); //获取数组的行列 int col=array[0].size(); int PRow=0; //初始搜索位置 int PCol=col-1; for(; PRow<row && PCol>=0; ) //列不能左,行不能下时停止 { //cout<<array[PRow][PCol]<<endl; if( target<array[PRow][PCol] ) PCol--; else if( target>array[PRow][PCol] ) PRow++; else return 1; } return 0; } };
代码通过图片
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- 关于C#中排序函数的总结
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua中使用二维数组实例
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法
- Lua函数用法研究
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记