两个数组s1[n]和s2[m],其中n和m都大于30000,而且s1[0]=s2[0],两列数都是等差数列,差比如是x和y ,那么怎么设计个效率高的算法提出数列中的相同数呢?

解决方案 »

  1.   

    方法一:s1和s2两个都从0开始,加上自己的差比,结果比大小,小的再加差比,如果相等则提出,提出相等的后,两个都加差比,在重复以上过程,直到一个数组循环完毕。
    方法二:等差数列,计算x,y,最小公约数是多少,然后再s1[0]的基础上,一直加这个公约数,直到大于s1或者s2里最大的一个数为止,去掉最后一个,就得到相同的数。
      

  2.   

    比较s1[n]与s2[m]的大小,大的值赋给k,从s1[0]开始加x与y的最小公倍数,直到结果大于等于k