633. Sum of Square Numbers
El texto de la tarea se traduce del ruso para el idioma seleccionado. El código no cambia.
given целое неотрицательное number c, решите, существуют ли два целых числа a и b такие, что a2 + b2 = c.
Ejemplo:
Input: c = 5
Output: true
C# solución
coincidente/originalimport 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++ solución
borrador automático, revisar antes de enviar#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 solución
borrador automático, revisar antes de enviarimport 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.
😎
Vacantes para esta tarea
Se muestran vacantes activas con etiquetas coincidentes.
Todavía no hay vacantes activas.