Valid Perfect Square

来源:互联网 发布:html5商城整站源码 编辑:程序博客网 时间:2024/05/29 19:41

Given a positive integer num, write a function which returns True if num is a perfect square else False.

Note: Do not use any built-in library function such as sqrt.

Example 1:

Input: 16
Returns: True
Example 2:

Input: 14
Returns: False

方法:二分法,注意精度

class Solution {private:    bool binarySort(int num){        int left = 0, right = num/2;        bool isHas = false;        while(left<=right){            long middle = left + (right - left) /2;            if(middle*middle==num){                isHas = true;                break;            }            else if (middle * middle >num)                right = middle - 1;            else                left = middle + 1;        }        return isHas;    }public:    bool isPerfectSquare(int num) {        return num==1?true:binarySort(num);    }};
0 0
原创粉丝点击