Вчера я принимал участие в раунде B конкурса Google Kick Start 2020. Я не стремился к получению призов, просто хотел сделать это для удовольствия. За 3 часа было реализовано четыре алгоритма, и вы получили оценку за реализацию, работающую на небольшом наборе тестов и увеличенном наборе тестов.
Мне удалось получить первый набор тестов, пройденный для всех четырех моих реализаций , но я провалил второй тестовый набор в трех из вопросов, и я не могу понять, почему.
Я надеялся, что кто-нибудь сможет пролить свет на то, как я мог бы оптимизировать свой код лучше, чтобы пройти вторые тестовые наборы в рамках заданных ограничений. Я приложил ссылки к моим материалам ниже, а также к материалам 4-го уровня (how-you-doin'-lewin: участник с самым высоким счетом Java).
Мои попытки (pinkRainb0w )
Лучший результат Java представления участника (how-you-doin'-lewin)
Проблемы полностью объясняют ограничения алгоритма, такие как время выполнения длительности и пределы памяти, а также диапазоны ввода для двух тестовых наборов. Для Q2, Q3 и Q4 я прошел первые тестовые наборы, но не прошел второй тестовый набор из-за ошибки времени выполнения, TimeLimitExceeded и другой ошибки времени выполнения.
Я планирую попробовать повторить C в следующем месяце, и хотел бы избежать подобных ошибок, как это, если решение моих ошибок довольно простое.
[РЕДАКТИРОВАТЬ]: Код был запрошен для размещения здесь, поэтому я добавлю ссылки для просмотра кода (вставка код здесь сделает этот пост очень и очень длинным):
(Q1 попытки ссылки пропущены: см. ссылки выше для просмотра кода)
Q2 Моя попытка (Пройденный тестовый набор 1, неудачный тестовый набор 2: ошибка во время выполнения)
Q2 попытка "как дела" Левина
Q3 Моя попытка (пройденный тест набор 1, неудачный тест набор 2: превышен лимит времени)
Q3 попытка "как дела" Левина
Q4 Моя попытка ( Пройденный тестовый набор 1, неудачный тестовый набор 2: ошибка во время выполнения)
Q4 попытка "как дела" - Левин