[LeetCode] #367 有效的完全平方数

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

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

输入:num = 16

输出:true

二分法查找

class Solution {
    public boolean isPerfectSquare(int num) {
        if(num < 2) return true;
        long l = 2, h = num / 2, m;
        while (l <= h) {
            m = l + (h - l) / 2;
            if (m * m == num) return true;
            if (m * m > num)  h = m - 1;
            else l = m + 1;
        }
        return false;
    }
}

知识点:

总结:

 

posted @ 2021-09-19 11:31  1243741754  阅读(27)  评论(0编辑  收藏  举报