华为招聘机试整理3:数组比较
来源:互联网 发布:成都java培训班 编辑:程序博客网 时间:2024/06/07 22:53
华为招聘机试整理3:数组比较
题目:数组比较
题目描述:
比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数
比如:
数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0
数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元素个数为3
要求实现函数:
int array_compare(int len1, int array1[], int len2, int array2[])
【输入】 int len1:输入被比较数组1的元素个数;
int array1[]:输入被比较数组1;
int len2:输入被比较数组2的元素个数;
int array2[]:输入被比较数组2;
【输出】 无
【返回】 不相等元素的个数,类型为int
示例
1) 输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5},int len2 = 5
函数返回:0
2) 输入:int array1[] = {1,3,5},int len1 = 3,int array2[] = {77,21,1,3,5,7},int len2 = 6
函数返回:3
题目分析:
这道题其实很简单,就是要逐个比较题,由于我们不知道哪个数组长,所以我们先判断谁长,所以我们先进行比较,之后返回,这样做的目的就是保证array1[]比较短,方便我们写循环。
===========================================================================
参考代码:
//数组比较.cpp//2014.7.9 hepanhui#include <iostream>#include <string>const int maxn = 1000;using namespace std;int array_compare(int len1, int array1[], int len2, int array2[]){ int i,j, cnt = 0; if(len1 > len2) return array_compare(len2,array2,len1,array1); for(i = len1-1, j = len2-1; i >= 0; i--,j--) { if(array1[i] != array2[j]) cnt++; } return cnt;}int main(){ int len1,len2; int array1[maxn]; int array2[maxn]; cin >> len1; for(int i = 0; i < len1; i++) cin >> array1[i]; cin >> len2; for(int j = 0; j < len2; j++) cin >> array2[j]; cout << array_compare(len1,array1,len2,array2) << endl; return 0;}
调试中易犯的错误:
①对于数组倒序排列的时候一定要注意这样for(int i = len-1; i >= 0; i++)不要思维定式for(int i = 0; i < len; i++)不能少了=号,而且注意是i--;
②整型数组输入的时候,我们一定要注意不能cin >> array;这种方法只能用于字符串数组输入,我们要用for循环来输入。
- 华为招聘机试整理3:数组比较
- 华为招聘机试整理7:给定一个数组input[]
- 华为招聘机试整理14:数组奇数偶数排序
- 华为校园招聘java机试整理
- 华为招聘机试整理2:判断一个数组的元素是否是回文
- 华为机试数组比较
- 华为招聘机试整理1:删除子串
- 华为招聘机试整理4:手机号码合法性判断
- 华为招聘机试整理5:简单四则运算
- 华为招聘机试整理6:选秀节目打分
- 华为招聘机试整理8:操作系统任务调度问题
- 华为招聘机试整理11:实现字符串间隔输出
- 华为招聘机试整理12:合并字符串
- 华为招聘机试整理13:算分数的问题
- 华为招聘机试整理15:约瑟夫环
- 华为招聘机试整理16:约瑟夫环应用
- 华为2014校园招聘机试3
- 华为招聘机试整理9:输入一个字符串,用指针求出字符串的长度
- ubuntu/linux mint 创建proc文件的三种方法(四)
- 4.1.1 Valid Parentheses
- Best Time to Buy and Sell Stock III
- hdu 3485——Count 101
- 华为招聘机试整理2:判断一个数组的元素是否是回文
- 华为招聘机试整理3:数组比较
- 华为招聘机试整理4:手机号码合法性判断
- 3个概念
- 【Android常用控件】EditText常用属性【二】:为文本输入框指定软键盘类型和软键盘回车键图标设置
- 黑客攻防入门秘籍 学习笔记(一)
- ASP.NET MVC - how to make users confirm the delete
- 《黑客攻防入门秘籍》 学习笔记 (二)
- Android sdk content loader 0%的解决方案
- 使用GDI在windows下绘图(二)——GDI绘图方法