有什么最快的方法来实现数组相减?例如:
但这似乎不太高效。还有其他方法吗?
array a1 = [1, 3, 4, 5, 8];
array a2 = [2, 4, 5];
array a3 = a1 - a2; /* [1, 3, 8] */
这里array
是我的程序用来表示作为容器的结构体的类型。其他部分是伪代码,当然我不会像那样创建数组,也不会进行减法运算。
我能想到的最简单的解决方案涉及嵌套循环:
/* a1 - a2 */
for (i = 0; i < a1.size; ++i) {
int is_the_same = 0;
for (j = 0; i < a2.size; ++j)
if (a1[i] == a2[j]) {
is_the_same = 1;
break;
}
}
if (!is_the_same)
a3.push a1[i];
}
但这似乎不太高效。还有其他方法吗?
j = something
开始... - Vyktor