// 二维数组中的查找
// 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按
// 照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个
// 整数,判断数组中是否含有该整数。 #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. Lintcode: Hash Function && Summary: Modular Multiplication, Addition, Power && Summary: 长整形long

    In data structure Hash, hash function is used to convert a string(or any other type) into an integer ...

  2. BootStrap的布局学习

    布局组件无数可复用的组件,包括字体图标.下拉菜单.导航.警告框.弹出框等更多功能. Bootstrap的使用非常灵活,可以对各种组件进行合并使用(如:为标签页项 添加带下拉菜单),下面的知识点中将逐个 ...

  3. FRM-40212: Invalid value for field %s.

    Cause:        Caused by one of the following: 1.  The value is not of the proper data type. 字段类型不对 2 ...

  4. <<Joint Deep Modeling of Users and Items Using Reviews for Recommendation>> 评论打分预测

    综述: 本文将 CNN 与 FM(Factorization Machine) 结合,基于评论文本来进行评分预测. 简介: 目前将神经网络应用推荐系统的研究工作中,有一类思路是把如CNN等神经网络作为 ...

  5. Java: war包的作用及使用方法,如何解压后缀名为war的文件

    1.什么是war文件? 如果一个Web应用程序的目录和文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,我们可以将Web应用程序打包成Web归档(WAR)文件.这个过程和把Jav ...

  6. web前端----css属性

    一.文本 1.文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 ...

  7. 火狐使用Ctrl新开窗口不生效

    使用window.open新开页面,火狐浏览器无法使用Ctrl新开窗口后页面停留在当前页面,兼容性问题,使用<a>或者<router-link>标签即可解决 --贡献者:毛毛

  8. msf辅助模块的应用——20145301

    msf辅助模块的应用 实验步骤 创建msf所需的数据库 service postgresql start msfdb start 开启msf,输入命令 use auxiliary/scanner/di ...

  9. 实验二 Java 面向对象程序设计

    实验内容 1 初步掌握单元测试和TDD 2 理解并掌握面向对象三要素:封面,继承,多态 3 初步掌握UML建模 4 熟悉SOLID原则 5 了解设计模式 (一)单元测试 D

  10. codevs & vijos 爱在心中 - Tarjan

    描述 “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动.爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our Home.” 在爱的国度里有N个人,在他们的心中都有 ...