美文网首页LeeCode题目笔记
2019-12-26 有效的完全平方数

2019-12-26 有效的完全平方数

作者: Antrn | 来源:发表于2019-12-27 16:50 被阅读0次

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

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

    示例 1:

    输入:16
    输出:True
    

    示例 2:

    输入:14
    输出:False
    
    C++1

    思路:使用暴力遍历,只需要遍历到num的一半即可判断...时间复杂度O(n)

    class Solution {
    public:
        bool isPerfectSquare(int num) {
            if(num == 0 || num == 1){
                return true;
            }
            long long mid = num/2;
            for(long long i=1;i<=mid;i++){
                if(i * i == num){
                    return true;
                }
            }
            return false;
        }
    };
    
    C++2

    思路:使用二分法,效率快很多,时间复杂度O(logn)

    class Solution {
    public:
        bool isPerfectSquare(int num) {
            long long left = 0,right = num;
            while(left<=right){
                long long mid = left + (right-left)/2;
                long long temp = mid * mid;
                if(temp == num){
                    return true;
                }else if(temp<num){
                    left = mid+1;
                }else{
                    right = mid-1;
                }
            }
            return false;
        }
    };
    

    相关文章

      网友评论

        本文标题:2019-12-26 有效的完全平方数

        本文链接:https://www.haomeiwen.com/subject/wrvdoctx.html