633. Sum of Square Numbers
Il testo del problema è tradotto dal russo per la lingua selezionata. Il codice resta invariato.
given целое неотрицательное number c, решите, существуют ли два целых числа a и b такие, что a2 + b2 = c.
Esempio:
Input: c = 5
Output: true
C# soluzione
abbinato/originaleimport kotlin.math.sqrt
class Solution {
fun judgeSquareSum(c: Int): Boolean {
var a = 0
var b = sqrt(c.toDouble()).toInt()
while (a <= b) {
val total = a * a + b * b
if (total == c) {
return true
} else if (total < c) {
a++
} else {
b--
}
}
return false
}
}
C++ soluzione
bozza automatica, rivedere prima dell'invio#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
import kotlin.math.sqrt
class Solution {
fun judgeSquareSum(c: Int): Boolean {
var a = 0
var b = sqrt(c.toDouble()).toInt()
while (a <= b) {
val total = a * a + b * b
if (total == c) {
return true
} else if (total < c) {
a++
} else {
b--
}
}
return false
}
}
Java soluzione
bozza automatica, rivedere prima dell'invioimport java.util.*;
import java.math.*;
// Auto-generated Java draft from the C# solution. Review API differences before LeetCode submit.
import kotlin.math.sqrt
class Solution {
fun judgeSquareSum(c: Int): Boolean {
var a = 0
var b = sqrt(c.toDouble()).toInt()
while (a <= b) {
val total = a * a + b * b
if (total == c) {
return true
} else if (total < c) {
a++
} else {
b--
}
}
return false
}
}
Algorithm
Проверка границ
Проверьте, если c меньше 0, немедленно return false, так как сумма квадратов двух целых чисел не может быть отрицательной.
Инициализация указателей
Используйте два указателя a и b. Инициализируйте a на 0 и b на значение квадратного корня из c. Поиск решения: Используйте цикл для поиска a и b, таких что a^2 + b^2 == c: Если a^2 + b^2 равно c, return true. Если a^2 + b^2 меньше c, увеличьте a на 1. Если a^2 + b^2 больше c, уменьшите b на 1.
Возвращение результата
Если цикл завершится без нахождения подходящих a и b, return false.
😎
Vacancies for this task
offerte attive with overlapping task tags are mostrati.
Non ci sono ancora offerte attive.