• 每日一小练——等值数目


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


    题目:等值数目


    内容:已知两个整数数组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就敲了起来。问题果然非常easy。分分钟就超神。。奥,不正确就攻克了。经过昨天题目的启示。我上了就考虑了时间复杂度的问题,所以今天直接就达到了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;
    }

    实验结果为:



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

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


                -End-

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




  • 相关阅读:
    SQL 取日期
    myeclipse 8.5 安装jbpm3.2开发插件
    持续感悟
    程序员应该读的书与经常上的网站
    java连接ms sql server各类问题解析
    怎么实现Redis的高可用?(主从、哨兵、集群)
    Web系统突然爆”Asp.net ajax客户端框架未能加载“的一种可能原因(误改服务器系统时间)
    【转】Skyline软件介绍
    ArcSDE启动遇到ORA12560: TNS: 协议适配器错误解决办法
    开放源代码GIS资源集锦
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5241615.html
Copyright © 2020-2023  润新知