Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка: Time Limit Exceeded (Превышен лимит ожидания) на LeetCode

Аркадий Саакян Мастер (1680), закрыт 3 года назад
Задачу на LeetCode я выполнил (вроде бы) правильно, но опять выдаёт ошибку...

Что это за ошибка и как его исправить?
Дополнен 3 года назад
Лучший ответ
Оракул Оракул (62122) 3 года назад
public int findDuplicate(int[] nums) {
int sum = 0, min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
for (int num : nums) {
sum += num;
min = Math.min(min, num);
max = Math.max(max, num);
}
int arithmeticSum = (min + max) * (nums.length - 1) / 2;
return sum - arithmeticSum;
}
Аркадий СаакянМастер (1680) 3 года назад
Я не совсем понял логику, но получается, чтобы найти три одинаковых числа, нужно делить на 3?
Оракул Оракул (62122) Аркадий Саакян, нет, чтобы найти 3 одинаковых числа при прочих равных требованиях (числа от 1 до n) надо вычитать 2 из длины массива и разнсоть сумм делить на 2 nums.length - 2 return (sum - arithmeticSum) / 2;
Остальные ответы
Похожие вопросы