// 二维数组中的查找
// 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按
// 照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个
// 整数,判断数组中是否含有该整数。 #include <iostream>
using namespace std; bool serach_in(int* matrix, int rows, int cols, int number)
{
bool flag = false; if ((matrix != NULL) && (rows > ) && (cols > ))//判断不能忘
{
int row = , col = cols - ;
while ((row < rows) && (col >= ))
{
if (matrix[row*cols + col] == number)
{
flag = true;
break;
}
else if (matrix[row*cols + col] > number)//用实例分析过程,思想比程序更重要
col--;
else
row++;
}
} return flag;
} void test1()//要查找的数在数组中
{
cout << "Test1:\n";
int matrix[][] = { {, , , }, {, , , }, {, , , }, {, , , } };
bool result;
result = serach_in(matrix[], , , );
if (result)
cout << "Yes!\n";
else
cout << "No!\n";
} void test2()//要查找的数不在数组中
{
cout << "Test2:\n";
int matrix[][] = { {, , , }, {, , , }, {, , , }, {, , , } };
bool result;
result = serach_in(matrix[], , , );
if (result)
cout << "Yes!\n";
else
cout << "No!\n";
} void test3()//要查找的数是数组中最小的数字
{
cout << "Test3:\n";
int matrix[][] = { {, , , }, {, , , }, {, , , }, {, , , } };
bool result;
result = serach_in(matrix[], , , );
if (result)
cout << "Yes!\n";
else
cout << "No!\n";
} void test4()//要查找的数是数组中最大的数字
{
cout << "Test4:\n";
int matrix[][] = { {, , , }, {, , , }, {, , , }, {, , , } };
bool result;
result = serach_in(matrix[], , , );
if (result)
cout << "Yes!\n";
else
cout << "No!\n";
} void test5()//要查找的数比数组中最小的数字还小
{
cout << "Test5:\n";
int matrix[][] = { {, , , }, {, , , }, {, , , }, {, , , } };
bool result;
result = serach_in(matrix[], , , );
if (result)
cout << "Yes!\n";
else
cout << "No!\n";
} void test6()//要查找的数比数组中最大的数字还大
{
cout << "Test6:\n";
int matrix[][] = { {, , , }, {, , , }, {, , , }, {, , , } };
bool result;
result = serach_in(matrix[], , , );
if (result)
cout << "Yes!\n";
else
cout << "No!\n";
} void test7()//鲁棒性测试,输入空指针
{
cout << "Test6:\n";
bool result;
result = serach_in(NULL, , , );
if (result)
cout << "Yes!\n";
else
cout << "No!\n";
} int main()
{
test1();
test2();
test3();
test4();
test5();
test6();
test7();//重点,鲁棒性测试 system("pause");
}

《剑指offer》第四题(二维数组中的查找)的更多相关文章

  1. 剑指Offer - 九度1384 - 二维数组中的查找

    剑指Offer - 九度1384 - 二维数组中的查找2013-11-23 23:23 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个 ...

  2. 《剑指Offer》面试题-二维数组中的查找

    题目1384:二维数组中的查找 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7318 解决:1418 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到 ...

  3. 剑指offer【01】- 二维数组中的查找(Java)

    在经历了春招各大公司的笔试题和面试官的血虐之后,决定要刷一些算法题了,不然连面试机会都没有. 而应对笔试和面试,比较出名的就是剑指offer的题目和LeetCode的题目了.剑指offer应对面试中的 ...

  4. 剑指offer第二版-4.二维数组中的查找

    面试题4:二维数组中的查找 题目要求: 一个二维数组中,每一行从左到右递增,每一列从上到下递增.输入一个整数,判断数组中是否含有该整数 /** * @since 2019年2月13日 下午5:08:5 ...

  5. 剑指offer面试题3二维数组中的查找

    题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 需要与面试官确认的是,这 ...

  6. 剑指offer面试题4: 二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  7. 【剑指Offer】1、二维数组中的查找

      题目描述:   在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否 ...

  8. 剑指offer(3)——二维数组中的查找

    题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路: 首先选取数组中右上 ...

  9. 剑指offer学习读书笔记--二维数组中的查找

    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都是按照从上到下递增的顺序排序.请设计一个函数,输入这样的一个二维数组和一个整数,判断数组是否含有这个整数. 1 2 8 9 2 4 9 1 ...

  10. 【剑指Offer】01、二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

随机推荐

  1. 在Win7系统下, 使用VS2015 打开带有日文注释程序出现乱码的解决方案

    在Win7系统下, 使用VS2015 打开带有日文注释程序出现乱码的解决方案 下载: apploc.msi (下载地址:http://microsoft-applocale.software.info ...

  2. php unset()函数销毁变量但没有实现内存释放

    <?PHP $a = "hello";$b = &$a;unset( $b );echo $a; // 输出 helloecho $b; // 报错$b = &quo ...

  3. matlab 怎么建立结构体数组?

    https://zhidao.baidu.com/question/537198107.html 怎么定义一个结构体数组,使数组的每个元素是一个结构体变量.像这样:a=(1,2)a(1)=struct ...

  4. linux du df ls

    du可以查看文件和文件夹的大小,df主要查看数据库大小,查看分区的的磁盘使用情况,ls可以添加-h参数,方便我们查看文件大小 df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为 ...

  5. 27. Remove Element(双指针)

      Given an array nums and a value val, remove all instances of that value in-place and return the ne ...

  6. 360在线网站安全检测,web安全测试AppScan扫描工具,XSS常用的攻击手法

    360在线网站安全检测,web安全测试AppScan扫描工具,XSS常用的攻击手法 如何做好网站的安全性测试 360网站安全检测 - 在线安全检测,网站漏洞修复,网站后门检测http://websca ...

  7. Python 除法运算

    Python中的除法较其它语言显得非常高端,有套很复杂的规则.Python中的除法有两个运算符,/和// 首先来说/除法: 在python 2.x中/除法就跟我们熟悉的大多数语言,比如Java啊C啊差 ...

  8. ajax原理和XmlHttpRequest对象

    Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其中最关键的一步就是从服务器获得请求数据.要清楚这 ...

  9. c++第十七天

    p101~p104: 1.数组中的元素个数也属于数组类型的一部分. 2.编译的时候数组的维度应该是已知的,也就是说维度必须是 const expression 3.const expression 是 ...

  10. (八)git更改提交操作

    1.git reset --hard + hash值 2.git reflog 查看当前仓库的操作日志 3.git commit --amend 修改提交信息(上一条) 4.git rebase -i ...