欢迎光临散文网 会员登陆 & 注册

力扣:367. 有效的完全平方数

2023-03-09 20:50 作者:薄荷硬糖酱  | 我要投稿

题目:

367. 有效的完全平方数

难度简单476收藏分享切换为英文接收动态反馈

给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。

完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。

不能使用任何内置的库函数,如  sqrt 。

 

示例 1:

输入:num = 16输出:true解释:返回 true ,因为 4 * 4 = 16 且 4 是一个整数。

示例 2:

输入:num = 14输出:false解释:返回 false ,因为 3.742 * 3.742 = 14 但 3.742 不是一个整数。

 

提示:

  • 1 <= num <= 231 - 1

这道题跟69题的思路一样:

注意区间问题和while的判断条件就可以

第一种法:

class Solution {

public:

    bool isPerfectSquare(int num) {

        long long right,left,mid;

        right = num,left = 0;

        while(right>=left){

            mid = (right+left)>>1;

            if(mid*mid>num){

                right = mid-1;

            }else if(mid*mid<num){

                left = mid+1;

            }else if(mid*mid==num){

                return true;

            }

        }

        return false;

    }

};




力扣:367. 有效的完全平方数的评论 (共 条)

分享到微博请遵守国家法律