首页 > 试题广场 >

有两个排好序的整数序列(升序),求这两个序列的交集;

[问答题]
有两个排好序的整数序列(升序),求这两个序列的交集;
假设两个整数序列为数组a, b,长度分别为m, n,复杂度就是O(m+n);
交集数组mix,定义长度size(m和n中的最大值),实际长度count;
int size = m>n ? m : n;
int mix[size], count = 0;
for(int i = 0, j = 0; i < m && j < n; ) {
    if (a[i] == b[j]) {
        mix[count++] = a[i];
        i++;
        j++;
    } else if (a[i] < b[j])
        i++;
    else
        j++;
}

发表于 2017-03-06 14:34:01 回复(0)