Middle
Kuidas kiiremini kontrollida, kas üks kogum kuulub teise: kasutades massiivi või kogumit?
sobes.tech AI
Vastus AI-lt
Set (Kogums) ir ātrāks, pārbaudot, 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).
- Kogums (Set): Pārbaude, vai elements ir kogumā, 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 kogumu:
- 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