Тест по программированию - Codility - Dominator [закрыто]
У меня только что возникла проблема с кодировкой, которая доставила мне неприятности, и я все еще пытаюсь выяснить, как могли бы быть соблюдены ограничения сложности пространства и времени.
Проблема заключается в следующем: Доминирующий элемент в массиве - это тот, который занимает более половины позиций в массиве, например:
{3, 67, 23, 67, 67}
67 является доминирующим членом, потому что он появляется в массиве в позициях 3/5 (& gt; 50%).
Теперь ожидается, что вы предоставите метод, который принимает массив и возвращает индекс доминирующего члена, если он существует, и -1, если его нет.
Легко, правда? Ну, я мог бы решить проблему легко, если бы не следующие ограничения:
Expected time complexity is O(n) Expected space complexity is O(1)Я могу видеть, как вы могли бы решить это за O (n) время с O (n) пространственными сложностями, а также за O (n ^ 2) время с O (1) космическими сложностями, но не тот, который соответствует O (n) времени и O (1) пробел.
Я был бы очень признателен за решение этой проблемы. Не беспокойтесь, срок истек несколько часов назад (у меня было всего 30 минут), поэтому я не пытаюсь обмануть. Благодарю.