/*******************************************************************
Copyright(c) 2018, htfeng
All rights reserved.
*******************************************************************///==================================================================
// 《剑指Offer——名企面试官精讲典型编程题》代码
//  作者:何海涛
//  C++
//==================================================================// 面试题4:二维数组中的查找
// 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
// 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数#include<iostream>using namespace std;bool Find(int *matrix, int rows, int columns, int numbers) {bool found = false;if (matrix != nullptr && rows > 0 && columns > 0) {int row = 0;int column = columns - 1;while (row < rows && column >= 0) {if (matrix[row*columns + column] == numbers) {found = true;break;}else if (matrix[row*columns + column] > numbers)--column;else++row;}}return found;
}//===============================测试====================================
void Test(char* testName, int* matrix, int rows, int columns, int numbers, bool expected)
{if (testName != nullptr)printf("%s begins: ", testName);bool result = Find(matrix, rows, columns, numbers);if (result == expected)printf("Passed.\n");elseprintf("Failed.\n");
}// 二维数组中包含查找的数字
void test1() {int matrix[][4] = { {1, 2, 8, 9}, {2, 4, 9, 12}, {4, 7, 10, 13}, {6, 8, 11, 15} };int *test = (int*) matrix;cout << test[10] << endl;char test1[] = "Test1";Test(test1, (int*)matrix, 4, 4, 7, true);
}// 二维数组中没有查找的数字
void test2() {int matrix[][4] = { {1, 2, 8, 9}, {2, 4, 9, 12}, {4, 7, 10, 13}, {6, 8, 11, 15} };int *test = (int*)matrix;char test2[] = "Test2";Test(test2, (int*)matrix, 4, 4, 14, false);
}// 特殊输入测试
void test3() {char test3[] = "Test3";Test(test3, nullptr, 0, 0, 16, false);
}int main() {test1();test2();test3();system("pause");return 0;
}

转载于:https://www.cnblogs.com/htfeng/p/9931730.html

面试题4:二维数组中的查找相关推荐

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

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

  2. 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找

    题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题的优化空间非常大, 个人感觉很适合作为面试题, 值得一做. 大家在我的公众号"每日精选算法题"中的聊天框中回 ...

  3. 剑指offer编程题Java实现——面试题3二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 下面是我实现的代码,修 ...

  4. 剑指Offer - 面试题4. 二维数组中的查找(双指针)

    1. 题目 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例 ...

  5. 剑指offer面试题04. 二维数组中的查找(Array)

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

  6. Java利用二维数组判断节假日_《剑指offer》面试题3 二维数组中的查找 Java版

    (二维数组,每行递增,每列递增.输入二维数组和一个整数,判断数组中是否含有此数.) 我的方法:拿到题目,根据题目条件我提取出这样一个特性:一个数的右边和下面的数都比它大.于是就可以写出一种递归的方法: ...

  7. 二维数组的空间复杂度_剑指 offer 面试题精选图解 04 . 二维数组中的查找

    点击关注上方"图解面试算法", 设为"置顶或星标",一起刷 LeetCode. 作者:程序员吴师兄 今天分享的题目来源于 LeetCode 上的剑指 Offer ...

  8. leetcode|剑指offter|面试题4:二维数组中的查找

    面试题04. 二维数组中的查找 问题描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判 ...

  9. [剑指offer]面试题3:二维数组中的查找

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

最新文章

  1. vc++图像保存,重绘
  2. php从数据库中读取特定的行
  3. 弗林德斯大学计算机科学,想成为IT大神?就去学习弗林德斯大学计算机科学专业...
  4. 又遇到问题:wrong ELF class: ELFCLASS32 in Unknown on line
  5. 数据库系列之T-SQL(存储过程)
  6. 【目标检测】RCNN算法详解
  7. 贝塞尔曲线开发的艺术
  8. 使用ArcGIS JS API加载WMTS图层的两种方式
  9. 机房管理系列之工作站
  10. (三)Clang/ LLVM编译流程简述
  11. QSettings生成以及解析配置文件
  12. 【TensorFlow】TensorFlow函数精讲之tf.get_variable()和tf.get_variable_scope()
  13. 不用计算机怎么连接无线,不用电脑可以装wifi吗 不通过电脑装wifi方法【图文】...
  14. 怎么算特征值和特征矩阵?
  15. OPENSTACK-210-3-配置网络(Configure networking)-命令行
  16. 电气成套设备远程监控应用
  17. 【web项目】任务倒计时网页
  18. usaco1.3 calfflac 2008.11.5
  19. flink 入门(一)
  20. 秋月之谋:5.20黄金原油调整不改,主要选择在周尾!

热门文章

  1. 排序算法系列:选择排序算法
  2. 利用银行家算法避免死锁(C++实现)
  3. Spring的两种容器后处理器(PropertyPlaceholderConfigurer和PropertyOverrideConfigurer)
  4. python open方法下file模块_python 文件操作
  5. Firetruck(DFS+回溯)
  6. php判断表单修改内容,JavaScript判断用户是否对表单进行了修改的方法_javascript技巧...
  7. jsp mysql utf-8 中文乱码_jsp插入mysql数据库显示中文乱码问题
  8. java配置文件中的plugin,启用ContextReplacementPlugin以忽略webpack中的配置和测试设置文件...
  9. 负数显示红字html语言,需要将单元格内的负数显示为红色且不带负号显示两位小数的格式代码是下面哪一种A、 0.00;[红色...
  10. eclipse打包项目为aar_Eclipse中使用AAR