判断一个数组是不是另一个数组的子集

即判断一个数组是不是完全包含另一个数组,方法好像有很多呀。

假设有数组 a1 和 a2,判断 a1 是否完全包含 a2,即 a2 是不是 a1 的子集。

第一种,最笨的方法,两层遍历。

第二种,只遍历 a2,使用数组方法来判断,可用方法很多。

a1.includes(i)也可以换成a1.find(i) == nulla2.findIndex(i) == -1

第三种,将数组 a1 转成 Set,用 Set 类的has方法。

第四种,还是用 Set 类。

这种方法要求 a1 数组内的元素值都唯一,如果不唯一那么就将左面也转一次。

理论上讲,第一种时间复杂度最高,第四种时间复杂度最低。

暂时想不到其他更好的办法,想到再补充。

(本文完)


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!