Число популярно, если оно больше или равно N/4 раза (N - длина массива). Он хотел, чтобы я использовал отсортированные свойство массива и придумать лучшее решение, чем сложность времени O (n).Интервью Q: Как найти наиболее популярное число в отсортированном массиве
3
A
ответ
2
Я бы сделал это с похожим подходом, как бинарный поиск.
Сначала я бы нашел значения из 8 чисел, которые были бы на 0/8, 1/8, 2/8 ... 8/8 массива. Те же самые числа, которые вы находите, когда вы бинарно ищете что-то.
Поскольку такое же число должно быть в n/4 размера массива или выше, оно должно достигать по меньшей мере двух из этих границ в строке. Аналогично номеру 2/8 и 3/8.
Поэтому идентификация номера и частичного положения выполняется в постоянное время.
Затем вы просто продолжаете находить, где оно начинается и где оно заканчивается, что является типичным бинарным поиском.
Сложность: O(log n)
Смежные вопросы
- 1. Повторное число в отсортированном массиве
- 2. Найти без дублирования элемента в отсортированном массиве
- 3. Можно ли использовать бинарный поиск, чтобы найти наиболее часто возникающее целое число в отсортированном массиве?
- 4. Найти элемент в отсортированном массиве
- 5. Число вхождений элемента в отсортированном массиве
- 6. Как найти точку в отсортированном массиве?
- 7. Как найти наиболее частое число и его частоту в массиве в диапазоне L, R наиболее эффективно?
- 8. Наиболее частое число в массиве
- 9. Как найти второе наиболее часто встречающееся число в массиве?
- 10. Как найти наиболее часто повторяющееся число в массиве?
- 11. шаблона согласования интервью Q
- 12. Показать наиболее популярное сообщение в блоге Tumblr
- 13. Интервью Q: Java Synchronization
- 14. Как найти значение, наиболее близкое к другому значению X в большом отсортированном массиве эффективно
- 15. Найти наиболее частое число
- 16. Найти наиболее частое число в массиве с ограниченной памятью
- 17. алгоритма, чтобы найти места в отсортированном массиве
- 18. Интервью - Найти полюс полюса в массиве
- 19. Найти наименьший элемент в отсортированном повернутом массиве
- 20. Найти точку поворота в отсортированном массиве
- 21. Найти N-й наиболее часто число в массиве
- 22. PHP search msql table, чтобы найти наиболее популярное поле
- 23. Как найти число в массиве?
- 24. Как найти число в массиве?
- 25. найти самый низкий индекс заданного значения в предварительно отсортированном массиве
- 26. Как найти несвязанное целое число в массиве?
- 27. Найти наиболее распространенную запись в массиве
- 28. Наиболее эффективный способ найти диапазон в массиве
- 29. Как найти индекс числа в отсортированном массиве со смещением
- 30. Наиболее частое число в массиве в Java
Как вы пытаетесь решить проблему? –
Сначала я дал решение хэшмапа, которое требовало подсчета числа чисел и возврата числа с count> = N/4. Тогда я как бы застрял, сделав его лучше. Я знал, что популярное число (если оно существует) должно быть одним в позициях - 0, n/4, n/2, 3n/4, n, но не могло найти код для его решения. – user1952143