【LintCode】777. 完全平方數(二分法)

描述

中文English

給出一個正整數 num,寫一個函數,要求當這個當num爲完全平方數時函數返回True,否則返回False

樣例

樣例1:

輸入: num = 16
輸出: True
解釋:
sqrt(16) = 4

樣例2:

輸入: num = 15
輸出: False
解釋:
sqrt(15) = 3.87
public boolean isPerfectSquare (int num) {
        // write your code here
        long l = 0, r = num;
        while (r - l > 1) {
            long mid = (l + r) / 2;
            if (mid * mid <= num) {
                l = mid;
            } else {
                r = mid;
            }
        }
        long ans = l;
        if (l * l < num) {
            ans = r;
        }
        return ans * ans == num;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章