有效完美平方

题目 有效完美平方

image-77ba5fd1

思路分析

一定要找到一个确定的数

而不是大于某数的第一个或小于某数的最后一个

所以可以把模版稍微改一下

只有==时结束 否则往左或往右

不过要注意的是 此时循环条件成了l≤r

image-949aeb4c

代码实现

class Solution {

public:

    bool isPerfectSquare(int num) {

        long long l=0,r=num;

        while(l<=r)

        {

            long long mid=l+r>>1;

            if(mid*mid==num)

                return true;

            else if(mid*mid<num)

                l=mid+1;

            else

                r=mid-1;

        }

        return false;

    }

};

同类题型

视频讲解


⬅️ 最长连续子序列 🏠 00-刷题理模型 ➡️ 机器人跳跃问题