Я думаю, что решение № 2 с использованием HashMap
быстрее.
В решении № 1 вы сортируете весь массив, который в худшем случае будет иметь сложность около O (nlogn).
Находясь в решении №2, вы просто делаете один проход массива, поэтому сложность составляет O (n).Вы даже ломаете (возвращаете), как только вы нашли элемент, считающий половину от количества элементов.Хотя это решение может потребовать некоторой дополнительной памяти, оно будет быстрее.
Обратите внимание, что я игнорирую время, затрачиваемое на containsKey()
, get()
и т. Д., Поскольку ключ Integer обеспечит постоянный произвольный доступ.То же самое и в случае доступа к элементу массива, например nums[index]
.