Отправленный код на самом деле O(n^2)
:
all(True if arrs2.count(item) <= arrs1.count(item) else False for item in arrs2)
all
требует одного прохода по входу, что приводит к O(n)
для сложности времени.Однако на каждом проходе число раз, item
встречается в arrs2
и arrs1
, должно быть получено.count
имеет сложность O(n)
, так как объект списка должен быть итерирован, чтобы найти каждое вхождение нужного значения.Метод count
вызывается дважды, однако он приблизительно равен O(n)
как средняя сложность по времени.Следовательно, полное выражение: O(n)*O(n) => O(n^2)
.