码迷,mamicode.com
首页 > 其他好文 > 详细

每日一小练——等值数目

时间:2014-05-13 08:14:14      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:c++   学习   每日一小练   算法   vs   

上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练!


题目:等值数目


内容:已知两个整数数组f[]与g[],它们的元素都已经从小到大排列好,而且两个数组中的元素都各不相同。例如,f[]中有1,3,4,7,9,而g[]中有3,5,7,8,10。试编写程序算出这两个数组之间有多少组相同的元素。就上例而言,f[2]和g[1]为3是一组;f[4]和g[3]为8是一组。所以共有两组。


经过了前两天的编写,我觉得程序不具有代表性,所以我打算以后把核心算法的部分写出函数的形式,这样看起来更直观。


我的解法:上来没多想,打开vs2013就敲了起来,问题果然很简单,分分钟就超神。。奥,不对就解决了!经过昨天题目的启发,我上了就考虑了时间复杂度的问题,所以今天直接就达到了n的水平,说明我确实是进步了O(∩_∩)O~!


#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int equals(int f[], int g[],int fLength,int gLength);
	int Num = 0;
	int f[5] = { 1, 3, 4, 7, 9 };
	int g[5] = { 3, 5, 7, 8, 10 };
	Num = equals(f,g,5,5);
	cout << "两个数组中的等值数目为:";
	cout <<  Num << endl;
	getchar();
	return 0;
}

int equals(int f[], int g[],int fLength,int gLength)
{
	int Num = 0;
	int index_f = 0;
	int index_g = 0;
	while (index_f < fLength && index_g < gLength)
	{
		if (f[index_f] == g[index_g])
		{
			Num++;
			index_f++;
		}
		else if (f[index_f] < g[index_g])
			index_f++;
		else
			index_g++;
	}
	return Num;
}

实验结果为:

bubuko.com,布布扣


欢迎大家加入每日一小练,嘿嘿!

每天练一练,日久见功夫,加油!


            -End-

参考文献:《c语言名题精选百则》




每日一小练——等值数目,布布扣,bubuko.com

每日一小练——等值数目

标签:c++   学习   每日一小练   算法   vs   

原文地址:http://blog.csdn.net/zhurui_idea/article/details/25602001

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!