14.LeetCode刷题For Swift·633. 两数的平

2021-01-05  本文已影响0人  富城

1、原题

Input: 5
Output: True
Explanation: 1 * 1 + 2 * 2 = 5
题目描述:判断一个非负整数是否为两个整数的平方和。

2、思路

使用双指针方法,假设给的值就是结果,然后判断是否是

3、代码

class Solution {
    func judgeSquareSum(_ c: Int) -> Bool {
        // 双指针法,假设目标值就是结果
        var i = 0
        var j = Int(sqrt(Double(c)))
        while i <= j {
            let pow = i * i + j * j
            if pow > c {
                j -= 1
            } else if pow < c {
                i += 1
            } else {
                return true
            }
        }
        return false
    }
}
上一篇 下一篇

猜你喜欢

热点阅读