Просто проблема с описанием:
Для массива чисел размера n вернуть элемент большинства.
Элемент большинства — это элемент, который появляется более ⌊n / 2⌋ раз. Вы можете предположить, что элемент большинства всегда существует в массиве.
Пример 1:
Ввод: nums = [3,2,3]
Выход: 3Пример 2:
Ввод: nums = [2,2,1,1,1,2,2]
Выход: 2Ограничения:
n == nums.length
1 -109
На первый взгляд можно подумать о том, чтобы создать карту, а затем выбрать ту, которая показывает больше всего.
Если подумать, если бы вы могли отсортировать и получить тот, который появляется больше всего, это подошло бы.
И с этим есть еще более простой способ. Если вы внимательно прочитаете описание, то поймете, что мажоритарным элементом является тот, который занимает более половины массива.
Имея это в виду, если вы отсортируете его и получите средний индекс, это решит проблему:
class Solution { public int majorityElement(int[] nums) { // sort Arrays.sort(nums); // if by majority element it means that appears more than half of nums size // then picking the middle element would be the one that's a majority element return nums[nums.length / 2]; } }
Время выполнения: 4 мс, быстрее, чем 54,53% онлайн-заявок на Java для Majority Element.
Использование памяти: 53,5 МБ, менее 9,23% онлайн-заявок на Java для Majority Element.
—
Вот и все! Если есть что-то еще для обсуждения, не стесняйтесь оставлять комментарии, если я что-то пропустил, дайте мне знать, чтобы я мог обновить соответствующим образом.
До следующего поста! :)
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3