Выигрывает предложение (28): Более половины числа чисел массива появляются

Выигрывает предложение (28): Более половины числа чисел массива появляются

Поиск микро-общественный канал номер: «AI-ming3526» или «это маленький компьютер видение» для нескольких алгоритмов, машинного обучения, сухой
CSDN: https://blog.csdn.net/baidu_31657889/
GitHub: https://github.com/ Aimi-сп / AILearners

Во-первых, праймер

Эта серия моя кисть « чтобы доказать безопасность Предложение» отмахиваться скот в вопросительных примечаниях онлайн, она направлена на расширение возможностей по его собственному алгоритму.
Посмотреть полный алгоритм , чтобы доказать , вопросы безопасности решены предложения Нажмите CSDN и GitHub ссылку:
доказать безопасность предложение полного аналитических упражнения CSDN адрес
GitHub адрес

Во-вторых, название

Есть целый ряд числа массива, который появляется более половины длины массива, найти этот номер. Например, длина входного массива {9} 1,2,3,2,2,2,5,4,2. Так как число 2 появляется пять раз больше, чем половина длины массива в массиве, выход 2. Если есть 0 выход.

1, идеи

1 идея: для сортировки массива, чтобы найти номер в середине массива. Если количество раз появляется число больше половины длины массива, то после заказа этого номера, конечно, среди лучшего, то подсчитать количество способов, чтобы просмотреть число вхождений больше, чем половина длины массива, то он возвращает это число, и 0 в противном случае.

Идеи 2: Если число имеет квалификацию номера, и, кажется , даже больше , чем число всех появляются другие номера.
Сохранение при обходе массива из двух значений: один числовой массив, один номер. При прохождении следующего номера, если он предварительно сохранена на том же рисунке, плюс число 1 или уменьшается на 1, если число равно 0, то следующий номер сохраняется, а число устанавливается равным 1. После прохождения сохраненных номеров также желательно. А затем определить , соответствует ли условия могут быть.
Это на самом деле является «фрактал лист» метод, массив одновременно удалить два различных номера, последний оставшийся из числа является число. Если оставшиеся два, то два это то же самое, это результат, на основе своей последней оставшейся цифры или два назад в исходный массив, массив обход снова статистика о количестве случаев для окончательного решения.

2, программирование

питон

Реализация кода:

1 идея:

# -*- coding:utf-8 -*-
class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
        # write code here
        numbers.sort()
        theone = numbers[len(numbers)/2]
        if numbers.count(theone) > len(numbers)/2:
            return theone
        return  0

2 идеи:

# -*- coding:utf-8 -*-
class Solution:
    def MoreThanHalfNum_Solution(self, numbers):
        # write code here
        if not numbers:
            return 0
        res = numbers[0]
        times = 1
        length = len(numbers)
        for i in range(1, length):
            if times == 0:
                res = numbers[i]
                times = 1
            elif res == numbers[i]:
                times += 1
            else:
                times -= 1
    
        import collections
        return res if collections.Counter(numbers)[res] * 2 > length else 0

AIMI-CN AI обмен обучения группы [1015286623] для получения дополнительной информации о А.И.

Совместное использование технологии, удовольствие в жизни: наше количество общественного компьютерного зрения этот небольшой толчок «искусственного интеллекта» серии статей Новости за неделю, приветствуем ваш интерес!

рекомендация

отwww.cnblogs.com/aimi-cn/p/11458079.html