https://leetcode.com/problems/convert-integer-to-the-sum-of-two-no-zero-integers/description/ | Easy |
---|
Дано целое число n
. Найди два положительных числа a
и b
, таких что:
• a + b == n
• a
и b
не содержат цифру 0. Верни массив [a, b]
. Гарантируется, что ответ существует.
Input:
n = 2Output:
[1, 1]Explanation:
1 + 1 = 2, ни одно число не содержит нулей.
Input:
n = 11Output:
[2, 9]Explanation:
2 + 9 = 11, оба числа не содержат нулей.
fun getNoZeroIntegers(n: Int): IntArray {
// Перебираем a от 1 до n - 1
for (a in 1 until n) {
val b = n - a
// Проверяем, что и a, и b не содержат ноль
if (!a.toString().contains('0') && !b.toString().contains('0')) {
return intArrayOf(a, b)
}
}
// Ответ гарантирован, сюда не дойдём
return intArrayOf()
}
O(n * d)
, где d
— количество цифр в числе (для проверки на наличие нулей).
O(1)
, используется фиксированное количество дополнительной памяти.