367-有效的完全平方数

2019-07-10  本文已影响0人  饮酒醉回忆

有效的完全平方数

题目

给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。

说明:不要使用任何内置的库函数,如sqrt。

示例 1:

输入:16
输出:True

示例 2:

输入:14
输出:False

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-perfect-square
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

代码

class Solution {
    public boolean isPerfectSquare(int num) {
        //判断一个数是否是完全平方数,可以从2遍历到当前数的二分之一
        if(num == 1){
            return true;
        }
        for(int i = 2;i <= num/2;i++){
            if(i*i == num){
                return true;
            }else if(i*i > num){
                return false;
            }
        }
        return false;
    }
}
class Solution {
    public boolean isPerfectSquare(int num) {
         if(num==1){
            return true;
        }
        if(num<4){
            return false;
        }
        long left=1;
        long right=num;
        while(left<=right){
            long mid=(right+left)>>1;
            long temp=mid*mid;
            if(temp > num){
                right = mid-1;
                continue;
            }
            if(temp == num){
                return true;
            }
            if(temp < num){
                left = mid+1;
            }
        }
        return false;
    }
}
上一篇下一篇

猜你喜欢

热点阅读