633. Sum of Square Numbers

本文介绍了一种算法,用于判断是否存在两个整数a和b,使得a² + b²等于给定的非负整数c。通过使用双指针技巧,可以在O(sqrt(c))的时间复杂度内完成这一判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given a non-negative integer c, your task is to decide whether there’re two integers a and b such that a2 + b2 = c.

Example 1:

Input: 5
Output: True
Explanation: 1 * 1 + 2 * 2 = 5

Example 2:

Input: 3
Output: False
bool judgeSquareSum(int c) {
    if (c == 0)return true;
    int high = sqrt(c);
    for (int low = 0, p = high; low <= high && p >= 0;){
        int sum = pow(low, 2) + pow(p, 2);
        if (sum < c)low++;
        else if (sum > c)p--;
        else return true;
    }
    return false;
}
在编程中,`sum` 函数通常用于对一组数值进行求和操作。其使用方法和实现原理会根据不同的编程语言有所变化,但核心思想是相似的。 ### 使用方法 在大多数编程语言中,`sum` 函数可以接收一个数字列表或数组作为输入,并返回它们的总和。例如,在 Python 中,`sum` 函数的使用如下: ```python numbers = [1, 2, 3, 4] result = sum(numbers) print(result) # 输出 10 ``` 此外,`sum` 函数还可以与高阶函数结合使用,以处理更复杂的计算需求。例如,可以通过传递一个函数作为参数来对每个元素进行处理后再求和 [^1]。 ### 实现原理 从原理上看,`sum` 函数的实现通常涉及遍历输入的数值集合,并将每个元素依次相加。以下是一个简单的 `sum` 函数实现示例: ```python def custom_sum(numbers): total = 0 for number in numbers: total += number return total numbers = [1, 2, 3, 4] result = custom_sum(numbers) print(result) # 输出 10 ``` 在这个示例中,`custom_sum` 函数通过初始化一个变量 `total` 来保存总和,然后遍历输入列表中的每个元素,并将其值累加到 `total` 上,最终返回总和结果 [^1]。 ### 高阶函数的应用 当需要对集合中的元素进行预处理时,可以利用高阶函数(如 `map`)与 `sum` 结合使用。例如,在 Python 中可以这样实现: ```python def square(x): return x * x numbers = [1, 2, 3, 4] squared_sum = sum(map(square, numbers)) print(squared_sum) # 输出 30 (1^2 + 2^2 + 3^2 + 4^2) ``` 这里,`map` 函数接收了一个 `square` 函数和一个数字列表作为输入,然后将 `square` 函数应用于列表中的每个元素,生成一个新的包含平方值的列表,最后通过 `sum` 函数对该列表进行求和 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值