Учитывая список, проверьте, существует ли такое сочетание элементов, что a² + b² = c², где a, b и c — разные элементы в списке.
nums = [1, 2, 3] --> expect False nums = [1, 2, 3, 4, 5] --> expect True (3^2 + 4^2 = 5^2) nums = [3, 5, 12, 5, 13] --> expect True (5^2 + 12^2 = 13^2)
Рассуждение
Нам нужно проверить все комбинации пар all combinations of (a, b)
по квадрату каждого элемента в списке c^2
. Формирование комбинаций пар будет занимать время O(n²). Чтобы проверить, соответствует ли сумма квадратов комбинации квадрату элемента в списке, мы можем сначала сохранить квадрат элементов списка в хеш-наборе, чтобы время проверки было O (1).
Решение в коде
Вот и все. Надеюсь, вам понравилось.
Спасибо.
Вечнозеленое кодирование