这是我第一次听说大 O,所以我一点都不清楚,就我个人而言,这是一个 O(n^2),因为它对每个对象使用过滤器,然后对每个对象都包含另一个数组的..
function subset(a, b) {
const result = a.filter(a => b.includes(a));
return (result.length == b.length) ? true : false;
}
const array1 = ["a", "b", "c", "d", "e", "f", "g"];
const array2 = ["a", "b", "e", "g", "e"];
const isSubset = subset(array1, array2);
console.log(isSubset);
答案 0 :(得分:2)
array1.size = n
array2.size = m
如果我们把它翻译成伪代码:
for each object1 in array1.size:
for each object2 in array2.size:
object2.includes(object1)
所以复杂度是 O(n*m)。