`

等值数目问题

阅读更多

问题描述:已知两个整型数组f[]和g[],它们的元素都已经从小到大排列,并且每个数组中的元素各是各不相同的。例如,f[]中可能是1,3,4,7,9而g[]中可能是3,5,7,8,10。请写一个程序算出这两个数组中有多少组元素是相等的。例如f[2]=g[1]=3,f[4]=g[3]=8,因此上面的例子有两组。

思路:一般情况下,很容易想到下面的方法:

1.固定f[i],检查g[]中的每个元素,看是否有元素与之相等

2.处理f[i+1]的情况

3.循环1,2

这样做肯定是可以解决问题的,但是这么做就没有充分利用到题设的两个重要条件:它们的元素都已经从小到大排列,并且每个数组中的元素各是各不相同的。进一步分析,我们会发现,两个数组中元素比较无外乎三种情况:

1.f[i]>g[j]:f[i]与g[j]不等,并且g[]中不可能有与f[i]相等的元素了,对f[i+1]的比较从j开始;

2.f[i]=g[j]:f[i]与g[j]相等,对f[i+1]的比较从j+1开始;

3.f[i]>g[j]:f[i]与g[j]不等,还有可能找到,因此j++。

下面给出一种实现代码:

#include <stdio.h>

/******************************************** 
*计算两个数组中相同元素的个数 
*两个数组都满足如下条件 
********************************************/ 
int GetSameElementCount(const int a[], int m, const int b[],int n) 
{ 
    //数组a和b的下标索引 
    int i,j; 
    int count = 0; 
    int yStart = 0; 
    int num = 0; 
    for(i = 0; i < m; i++) 
    { 
        for(j = yStart; j < n; j++) 
        { 
            if(a[i] < b[j]) 
            { 
                yStart = j; 
                break; 
            } 
            else if(a[i] == b[j]) 
            { 
                yStart = j + 1; 
                count++; 
                break; 
            } 
        } 
    } 
    return count; 
} 
int main(void) 
{ 
    int arr1[] = {1,3,4,7,9}; 
    int arr2[] = {3,5,7,8,10}; 
    int result = GetSameElementCount(arr1,5,arr2,5); 
    printf("The EQ_COUNT is %d\n",result); 
    return 0; 
}

 

分享到:
评论

相关推荐

    基于动态分区的电力系统电磁暂态外部系统等值方法研究.pdf

    同时,动态分区方法还可以解决大型系统中的节点数目过多的问题。 结果和讨论: 本文的研究结果表明,基于动态分区的电力系统电磁暂态外部系统等值方法可以显著提高电磁暂态仿真的计算效率。同时,本文还讨论了该...

    全国通用2016版高考化学考前三月冲刺等值模拟一

    4. 氧化还原反应:通过转移电子数目判断化学反应,如二氧化硫和氧气的反应,需要学生掌握氧化还原反应中的电子转移计算。 5. 有机化合物:三聚甲醛的性质及其燃烧反应,涉及同分异构体、燃烧热和化学方程式的配平。...

    (广东专用)2015高考化学二轮复习 考前三个月 等值模拟(四)

    6. **阿伏加德罗常数的应用**:涉及反应的能量变化,以及电子转移数目,例如Fe在氧气中燃烧生成Fe3O4,失去电子数目的计算。 7. **化学推断**:根据事实判断化学反应的可能性,如铁、铜与浓硫酸的反应(铁钝化)、...

    全国通用2016版高考化学考前三月冲刺等值模拟二

    5. 有机化学 - 2,2,4-三甲基戊烷的一氯取代物同分异构体数目,需要理解烷烃的结构和取代反应的原理。 6. 酸碱反应及离子反应 - 天然海水pH≈8是由于碳酸盐和碳酸氢根离子的水解,以及"反应、稀释"过程中天然海水的...

    同等学力_在职研究生考研_离散数学&组合数学2007-201805真题及答案.pdf

    9. 数学证明:真题中不仅包括了计数和计算问题,还有对等值式的证明、群论中的子群概念、以及使用等势定义来证明两个实数区间等势的问题。 以上提到的知识点充分体现了同等学力在职研究生考研科目中离散数学和组合...

    生物医学工程图象编码2

    等值线编码效率高,特别适合灰度级数目较少且细节不丰富的图像。 另一方面,行程编码适用于大量连续相同灰度级的图像,如洪水图或二值图像。在一行扫描中,相同灰度级的像素形成一段行程。行程编码将这个序列映射为...

    数据库考试大题.pdf

    最后,设计一个 SQL 查询语句,显示参与科研项目数大于 5 项的科研人员的姓名、参与的科研项目数目。 4. 关系代数 在第 2 题中,需要画出 R 和 S 等值 = 连接和不等值 连接的运算结果。R 和 S 是两个关系,需要...

    【运筹学】复习参考资料知识点与习题集.doc

    二、单纯形法是解决标准型线性规划问题的常用方法,特别适合于变量数目较多的情况。其基本思路是通过迭代寻找最优解,步骤包括: 1. 初始化一个基本可行解。 2. 检验当前解是否最优,如果是则结束迭代,否则继续。 3...

    新版苏教版六年级数学上册期中考试题(汇编).pdf

    涉及的知识点包括鸽巢原理(至少有7只鸽子在同一个鸽舍)、比例尺的应用(...等值关系)、分数的分配(3kg糖平均分成5份的计算)、圆柱体体积的求解(利用增加的表面积推算体积)、大数目的改写(10400万元转换为亿单位...

    机械优化设计总复习PPT学习教案.pptx

    - 所有可能的设计方案构成的集合是一个向量空间,且是一个欧几里得空间,设计变量的数目决定了设计空间的维数。 4. **目标函数**: - 目标函数是衡量设计性能的关键指标,它是设计变量的函数,优化设计的目标就是...

    距离变换分割粘连区域(文档)

    检测环则是指用以测试环上数据的跳变,以及数值的大小关系与某类象素数目的多少等。 5. 距离图象的骨架 距离图象的骨架是指图象中的等值线,它们层层嵌套排列很有规律,每层的距离值相差 1,内大外小。距离图象的...

    数学建模算法

    - **基本解**: 当解中的非零变量数目等于约束方程数时,该解称为基本解。 - **基本可行解**: 同时满足可行性和基本性的解。 **1.4 线性规划的图解法** - **图解法步骤**: 1. 绘制出每个约束条件所代表的直线。 2....

    优化设计PPT学习教案.pptx

    设计变量的数目定义了问题的维数,例如,一个三维设计变量问题意味着有三个参数需要优化。在机械设计中,设计变量通常为实数,因此设计空间被视为实数的欧几里得空间。 **目标函数**是评估设计方案优劣的标准,它...

    电力系统计算机辅助分析期末复习PPT学习教案.pptx

    潮流计算是电力系统运行状态分析的重要部分,涉及到节点的分类(PQ节点、PU节点和平衡节点)以及方程数目和待求量的确定。节点电压、注入电流和功率方程构成了网络的基本方程。N-L法(牛顿-拉弗森法)用于求解非线性...

    isodata的matlab代码博客-Isodata-PatternRecognition:等值数据模式识别

    这是使用Matlab编写的Isodata非监督分类算法,Isodata相比于K-means等基础非监督分类的优点是:可以在每次迭代改变初设参数,如分类类别数目、类别差异阈值等等。 更多细节请见作业报告《isodata报告》

    C语言FAQ 常见问题列表

    C 语言常见问题集 原著:Steve Summit 翻译:朱群英, 孙 云 修订版 0.9.4, 2005年6月23日 版权所有 © 2005 * 目录 * 1. 前言 * 2. 声明和初始化 o 2.1 我如何决定使用那种整数类型? o 2.2 64 位机上的 ...

    高一地理(必修二)期中考试模拟卷(附答案).doc

    17. 城市等级与数目:在三级城市体系中,通常省会城市的数目最少,其次是地级市,数目最多的是县和县级市。 以上知识点涵盖了人口增长、人口老龄化、城市化、城市功能区、环境承载力等相关概念及其相互关系。

    数据库系统原理及技术试题库试题及参考答案选编.doc

    数据库系统原理及技术试题库试题及参考答案选编....12. 关系运算结果:两个关系 R 和 S 进行运算后得到 R3,R1 ∪ S、R1 - S、R1 ∩ S 中不可能出现的元组数目情况是 18、7、7。 知识点:关系运算、关系代数、集合运算

    第二次作业反馈1

    5. 题目2.7:列出至少有3艘舰船的类型及其被击沉的舰船数目,应使用嵌套查询,先找出符合条件的类型,再计算被击沉的数目。 6. 题目2.10:找出火炮数量最多的船只所属的国家,应确保正确使用聚合函数和ORDER BY来找...

    武大电力系统分析电力网络数学模型PPT学习教案.pptx

    例如,对于双端口四节点的网络,独立方程的数目减少到两个,这可以通过解耦等值电路的节点方程来实现。 电力网络方程的解法通常包括高斯消去法。这是一种通过行列式的行变换来求解线性方程组的方法,物理上可以理解...

Global site tag (gtag.js) - Google Analytics