2012华为笔试题:比较数组不同元素个数
需积分: 50 45 浏览量
更新于2024-09-16
收藏 59KB DOC 举报
"2012年华为公司校园招聘的机试题目,主要涉及数组操作和比较,提供了一个用于比较两个数组中不同元素个数的函数实现。"
这篇内容是关于华为2012年校园招聘的笔试题目,主要考察了编程基础,特别是数组处理能力。题目要求编写一个名为`compare_array`的函数,该函数接收两个整数数组的长度以及数组本身作为参数,其目的是计算从两个数组的最后一个元素开始比较,直到第一个元素,这两个数组中不同元素的个数。
题目给出的具体例子有两个数组:`array1[5]={77,21,1,3,5}`和`array2[3]={1,3,5}`。按照题目要求,从`array1[4]`(即5)与`array2[2]`(即5)开始比较,直到`array1[2]`(即1)与`array2[0]`(即1)结束。在这个过程中,没有发现不同的元素,因此不同元素的个数为0。另一个例子是`array1[6]={77,21,1,3,5,7}`和`array2[3]={1,3,5}`,在这种情况下,从`array1[5]`(即7)开始比较,到`array1[3]`(即3)结束,有3个元素不同,即7、21和77。
函数`compare_array`的实现中,首先对两个数组进行了反转操作,这是因为题目要求从数组末尾开始比较。反转后,数组的末尾元素变成了起始元素,这样可以直接从末尾开始遍历。然后,根据较小数组的长度(`small`)进行遍历,如果当前索引位置的元素相同,则减去1,表示没有找到不同的元素。最后返回`num`,即为不同元素的个数。
在提供的代码中,还包含了一些未使用的`printf`语句,这些原本可能是用于调试的,用于打印倒置后的数组和最终的计数值。`main`函数中调用了`compare_array`,并传入了示例数组和它们的长度,用于测试该函数的功能。
这个题目和解决方案展示了基础的数组操作和逻辑思维,是编程面试中常见的类型。它考察了程序员对数组的理解、反转操作的实现以及如何有效地比较数组元素来找出差异。对于准备类似面试或笔试的求职者来说,理解和掌握这类问题的解决方法是非常重要的。
214 浏览量
2011-10-05 上传
120 浏览量
144 浏览量
136 浏览量
181 浏览量
2024-08-15 上传
250 浏览量
zhangfeng1988523
- 粉丝: 0
- 资源: 1
最新资源
- 适合做手机展示的点击图片放大效果
- opencv-3.4.3.rar
- P-SCAN接口EMC设计标准电路与技术资料-综合文档
- Programacion-III-Proyecto-Final
- sahmieyab:Sahmieyab
- flutter_boost:FlutterBoost是一个Flutter插件,可以以最少的工作量将Flutter混合集成到您现有的本机应用程序中
- WAH壁挂式控制箱产品电子样本.zip
- 图片墙桌面效果
- 通讯录源码java-protobuf-AddressBook:GoogleProtobuf和Java。来源:https://github.co
- laravel-shop:Laravel商店套餐
- 基卡德
- OpenIoTHub::sparkling_heart:一个免费的物联网(IoT)平台和私有云。 [一个免费的物联网和私有云平台,支持内网穿透]
- Ajax-ljq_weixin.zip
- jquery实现图片放大效果
- 精通direct3d图形及动画程序设计源代码下载
- JRoll:平滑滚动移动网络