Middle
Kā ātrāk pārbaudīt, vai viena kolekcija ir iekļauta citā: izmantojot masīvu vai kopu?
sobes.tech AI
Atbilde no AI
Kopa (Set) ir ātrāk pārbauda, vai elementi ir iekļauti.
Skaidrojums:
- Masīvs (Array): Pārbaude, vai elements ir masīvā, vidēji aizņem O(n) laiku, kur n ir elementu skaits. Lai pārbaudītu, vai viena kolekcija ir iekļauta citā, nepieciešamas n iterācijas, katra ar O(m), kur m ir otras kolekcijas izmērs. Kopā O(n*m).
- Kopa (Set): Pārbaude, vai elements ir kopā, vidēji aizņem O(1) laiku. Lai pārbaudītu, vai viena kolekcija ir iekļauta citā, nepieciešamas n iterācijas, katra ar O(1). Kopā O(n).
Piemērs ar kopu:
- Izveidojiet
Setno pirmās kolekcijas. - Iterējiet pa otro kolekciju un pārbaudiet, vai katrs elements ir iekļauts izveidotajā
Set.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]
// Izveidojiet `Set` no collection1
let set1 = Set(collection1)
// Pārbaudiet, vai collection2 ir subset no collection1
let isSubset = collection2.allSatisfy { set1.contains($0) }
print(isSubset) // Izdrukās true