Binary Search:367. Valid Perfect Square

来源:互联网 发布:js入门教程视频 编辑:程序博客网 时间:2024/06/05 16:23

这道题的意思是,给出一个正整数,判断他是不是一个完全平方数,要求不能用sqrt等库函数。

二分搜索的思想,先检查0~num中间的数mid的平方,如果他等于num,则是完全平方数,如果他大于num,则从left到mid中间继续找,如果他小于num, 则从mid到right中间继续找。

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


原创粉丝点击