leetcode 367 Valid Perfect Square

题目连接

https://leetcode.com/problems/valid-perfect-square/ 

Valid Perfect Square

Description

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 {
public:
    bool isPerfectSquare(int num) {
        int lb = 1, ub = 92682;
        while(lb <= ub) {
            int m = (lb + ub) >> 1;
            long long v = (long long)m * m;
            if(v == num) return true;
            if(v > num) ub = m - 1;
            else lb = m + 1;
        }
        return false;
    }
};

 


posted @ 2016-06-30 21:14  GadyPu  阅读(220)  评论(0编辑  收藏  举报