Привыкайте писать вместе! Это 16-й день моего участия в «Новом ежедневном плане Nuggets · Апрельское задание по обновлению», нажмите, чтобы просмотреть подробности мероприятия .
Описание темы
Это 479. Максимальный палиндромный продукт в LeetCode на высокой сложности .
Тег : "перечисление", "математика"
задано целое число возврат может быть выражен как два -битных целых чисел.
Поскольку ответ может быть очень большим, верните его для Доп.
Пример 1:
输入:n = 2
输出:987
解释:99 x 91 = 9009, 9009 % 1337 = 987
复制代码
Пример 2:
输入: n = 1
输出: 9
复制代码
намекать:
Перечисление + Математика
для цифр количество цифр в произведении равно либо , либо 。
когда цифровой , мы всегда можем .
Используя характеристики палиндрома, нам нужно только перебрать первую половину палиндрома (вторая половина определяется однозначно), и нам нужно только следовать «от большого к меньшему» при переборе первой половины, чтобы убедиться, что найденные первым допустимым значением является наибольшее число, а для цифры Максимальное число 。
具体的,当枚举到回文串的前半部分 时,我们利用回文串特性构造出具实际的回文数值 ,随后检查 能否分解成数位为 的数对 ,利用乘法具有交换律,我们只需要枚举数对中的较大数即可。
代码:
class Solution {
public int largestPalindrome(int n) {
if (n == 1) return 9;
int max = (int) Math.pow(10, n) - 1;
for (int i = max; i >= 0; i--) {
long num = i, t = i;
while (t != 0) {
num = num * 10 + (t % 10);
t /= 10;
}
for (long j = max; j * j >= num; j--) {
if (num % j == 0) return (int)(num % 1337);
}
}
return -1;
}
}
复制代码
- 时间复杂度:枚举回文串的前半部分复杂度为 ;检查回文串能否被分解复杂度为 。整体复杂度为
- 空间复杂度:
最后
Это первая No.479
статья Серия начинается 01.01.2021. На момент начала в LeetCode 1916 вопросов, некоторые из которых заблокированы. Сначала мы разместим все вопросы без замков Тема закрыта.
В этой серии статей, помимо объяснения идей решения проблем, будет дан максимально лаконичный код. Если речь идет об общих решениях, также будут предоставлены соответствующие шаблоны кода.
Чтобы облегчить учащимся отладку и отправку кода на компьютере, я создал соответствующий репозиторий: github.com/SharingSour… .
В адресе склада можно увидеть ссылку на решение серии статей, соответствующий код серии статей, ссылку на исходный вопрос LeetCode и другие предпочтительные решения.