给定一个正整数 num, 编写一个函数, 如果 num 是一个完全平方数, 则返回 True, 否则返回 False.
说明: 不要使用任何内置的库函数, 如 sqrt.
示例 1:
输入: 16
输出: True
示例 2:
输入: 14
输出: False
二分查找:
- class Solution {
- public:
- bool isPerfectSquare(int num) {
- int l = 0;
- int r = num;
- while(l <= r) {
- long mid = (l + r)>> 1;
- if(mid * mid == num)
- return true;
- else if(mid * mid> num)
- r = mid - 1;
- else
- l = mid + 1;
- }
- return false;
- }
- };
来源: http://www.bubuko.com/infodetail-3012944.html