博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二维数组中的查找问题--剑指offer面试题3
阅读量:7285 次
发布时间:2019-06-30

本文共 1496 字,大约阅读时间需要 4 分钟。

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

// 二维数组中的查找#include 
using namespace std;int SearchMatrix(int *arr, int key, int row, int col){ if (arr == NULL) return 0; int row_index,col_index,pivotkey; int y = sizeof(arr)/sizeof(int); // for test cout << y <
= 0) { pivotkey = *(arr + row_index * col + col_index); if (pivotkey == key) return 1; else if (pivotkey > key) { col_index --; } else { row_index ++; } } return 0;}int main(){ int res, row = 0, col = 0; int arr[4][4] = {
{
1, 2, 8, 9},{
2, 4, 9, 12}, {
4, 7, 10, 13}, {
6, 8, 11, 15}}; int y = sizeof(arr)/sizeof(int); cout << y << endl; // 输出为16 row = (sizeof(arr)/sizeof(int)) / (sizeof(arr[0]) / sizeof(int)); col = sizeof(arr[0])/sizeof(int); res = SearchMatrix((int *)arr, 120, row, col); if (res == 1) cout << "found it" <

 

在写的时候发现一个问题,就是二维数组作为参数传入函数时,会有多种方法

第一种方式是直接传递二维数组,但是必须标明第二维的值,因为如果只是传递a[][],编译器无法分配这样的数组,所以要这样传int a[][4]

第二种方法是传递指针数组方式,即int (*a)[4]  , 这句话声明了一个指针变量(即数组指针),这个指针指向由4个int组成的数组 ,是一个一级指针

第三种是传递指针方法,即上边程序的方法。

不管是哪一种方法,在写程序的实参时,都要注意要匹配,有时候要进行一些强制类型的转换。

比如:

int a[3][4];

可以理解为a数组是三个元素组成的一维数组,这三个数组的名字分别为a[0], a[1], a[2],其中的每个元素又是由四个元素组成的一维数组。

a是三个一维数组a[0], a[1], a[2]的首地址

而a[0], a[1], a[2]又是三个数组名,分别表示三个一维数组的首地址。

 

转载于:https://www.cnblogs.com/simplepaul/p/6882617.html

你可能感兴趣的文章
《HTML5+CSS3网页设计入门必读》——导读
查看>>
《数据分析实战 基于EXCEL和SPSS系列工具的实践》一1.3 数据分析的几大抓手
查看>>
使用cProfile等工具来提高python的执行速度
查看>>
猎聘:分析70万在线职位后,告诉你数据分析师前景
查看>>
《流量的秘密 Google Analytics网站分析与商业实战》一1.6 有问有答:衡量成功...
查看>>
如何将 Linux 命令的输出赋值给变量
查看>>
《Puppet实战手册》——2.12 使用正则表达式进行替换
查看>>
《C++ Primer Plus(第6版)中文版》——1.4 程序创建的技巧
查看>>
《Java程序员面试秘笈》—— 面试题13 Java开发原则
查看>>
Oracle官方并发教程之Executor接口
查看>>
Python正则表达式指南
查看>>
DevOps转型的柳暗花明:开发运维一体化PaaS平台建设
查看>>
使用阿里云容器服务Jenkins实现持续集成之GitLab篇
查看>>
京东2017校园招聘笔试真题(希尔排序)
查看>>
Docker网络深度解读
查看>>
C语言OJ项目参考(1052)两个字符串连接
查看>>
Ckeditor一种很方便的文本编辑器
查看>>
阿里智能物联安全白皮书正式发布
查看>>
org.hibernate.hql.ast.QuerySyntaxException: buyer is not mapped
查看>>
三个月达到百万日活,梨视频如何借助云计算做最好看的资讯短视频?
查看>>