算法-获取有序数组中最小的相同元素

elegantYU 发布于

第六天

题目

获取两个有序数组的最小相同元素

输入:[1,2,3,4,5], [3,4,5,6,7]
输出:3

思考

递归?指针?暴力解?

指针,这是不一样的双指针,两个数组分别一个指针。

因为是有序数组,可以分别从头开始遍历(如果不是有序数组也要先排序),a 若小于 b,a 指针进一位,大于情况同理。

若出现相同元素,遇到就返回

function getMinEqualItem(a, b) {
    let i = 0,
        j = 0;

    while (i < a.length || j < b.length) {
        if (a[i] === b[j]) {
            return a[i];
        } else if (a[i] < b[j]) {
            i++;
        } else {
            j++;
        }
    }

    return null;
}

简单有效 无敌