[LeetCode] Sum of Square Numbers
Posted immjc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] Sum of Square Numbers相关的知识,希望对你有一定的参考价值。
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
给定一个数c,判断这个数是否由两个数的平方和组成。
首先对c开方,得到的数i这个i是c中最大的平方根,如果c由两个平方数组成,则这两个数的平方根都必然小于等于i,所以从i~0逐个判断c - i*i是否为平方数,如果是平方数,则返回true。
需要注意判断c是否为0这个初始条件。
class Solution { public: bool judgeSquareSum(int c) { if (c == 0) return true; int i = sqrt(c); while (i) { int x = c - i * i; int t = sqrt(x); if (t * t == x) return true; i--; } return false; } };
// 6 ms
以上是关于[LeetCode] Sum of Square Numbers的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] Sum of Square Numbers
[leetcode-633-Sum of Square Numbers]
LeetCode 633. Sum of Square Numbers
[leetcode]633. Sum of Square Numbers
[LeetCode] Sum of Square Numbers 平方数之和
[LeetCode] 1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold 元素和小于等于阈值的