367.Valid Perfect Square
367.Valid Perfect Square
难度:Easy
Given a positive integer num, write a function which returns True if num is a perfect square else False.
Note: Do not use any built-in library function such as sqrt.
1
Example 1:
2
3
Input: 16
4
Output: true
5
Example 2:
6
7
Input: 14
8
Output: false
Copied!
不能用sqrt函数,那么就只能直接循环,好在也不需要求出平方根也可以知道大致在什么位置跳出循环。
1
class Solution {
2
public:
3
bool isPerfectSquare(int num) {
4
for(int i=1;i<=num;i++)
5
{
6
long tmp=i*(long)i;
7
if(tmp>num) return false;
8
else if (tmp == num ) return true;
9
}
10
return false;
11
}
12
};
Copied!
这里将i转成long防止整型溢出。当tmp大于num时,即i已经超过了平方根,直接返回false即可。
执行用时 :4 ms, 在所有 C++ 提交中击败了81.42%的用户 内存消耗 :8 MB, 在所有 C++ 提交中击败了61.50%的用户
Copy link