首页 > 其他分享 >有效的完全平方数

有效的完全平方数

时间:2022-11-21 16:37:32浏览次数:42  
标签:平方 mid long 有效 num 完全 sqrt left

有效的完全平方数

一、题目描述

给定一个正整数num,编写一个函数,如果num是一个完全平方数,则返回一个true,否则则返回false。
示例1

输入:num = 16
输出:true

示例2

输入:num = 14
输出:false

二、解题思路

将1到num的所有数,全部平方在和num相比较,相同则num是完全平方数,不相同且当平方大于num时,说明不是平方数。

三、解题方法

方法1:(暴力法)
遍历所有数,在找到和num相等的数。
代码实现:

class Solution {
    public boolean isPerfectSquare(int num) {

        long x = 1;
        long sqrt = 1;
        while(sqrt <= num){
            if( sqrt == num){
                return true;
            }

            x++;
            sqrt = x * x;
        }

        return false;
    }
}

方法2:(二分法)
使用二分法去找到和和num相等的平方数。
代码实现

class Solution {
    public boolean isPerfectSquare(int num) {

        long left = 0;
        long right = num;
        while(right >= left){
            long mid = (right - left)/2 + left;
            long sqrt = mid * mid;

            if(sqrt > num){
                right = mid -1;
            }else if(sqrt < num){
                left = mid+1;
            }else{
                return true;
            }
        }

        return false;
    }
}

标签:平方,mid,long,有效,num,完全,sqrt,left
From: https://www.cnblogs.com/zjjtt/p/16911824.html

相关文章