数据结构面试题总结6——数组:求两个数组中满足给定和的两个元素

来源:互联网 发布:如何发布php网站 编辑:程序博客网 时间:2024/05/19 02:29

问题描述:在两个有序数组中,分别找出a,b两个元素满足a+b = c,c已知。

分析:我们要用有序这个有利条件,避免循环中套循环。我们用两个索引i,j分别指向数组A,B的首尾,根据比较的结果来移动索引的位置。

如果

    A[i] + B[j]  <  c , i++

    A[i] + B[j]  > c , j--

    A[i] + B[j]  ==  c , i++,j--


void fin2m(int *a,int m,int *b,int n,int c){    int i=0,j=n-1;    while(i<m && j>=0)    {        if(a[i]+b[j]>c)            j--;        else if(a[i]+b[j]<c)            i++;        else        {            cout << a[i] << ", " << b[j] << endl;            i++;            j--;        }    }}


0 0
原创粉丝点击