【每日一題-leetcode】367.有效的完全平方數

367.有效的完全平方數

  1. 有效的完全平方數

難度簡單119

給定一個正整數 num,編寫一個函數,如果 num 是一個完全平方數,則返回 True,否則返回 False。

說明:不要使用任何內置的庫函數,如 sqrt。

示例 1:

輸入:16
輸出:True

示例 2:

輸入:14
輸出:False

二分

  //直接二分秒就行 注意num要是一個很大的數 儘量使用Long
    // time : O(logN) space : O(1)
        public boolean isPerfectSquare(int num) {
            if(num < 2){
                return true;
            }
            long left = 2;
            long right = num/2;
            long x = 0;
            long mid = 0;
            while(left <= right){
                mid = left+(right-left)/2;
                x = mid * mid;
                if(x == num){
                    return true;
                }
                if(x > num){
                    right = mid-1;
                }else{
                    left = mid+1;
                }
            }
            return false;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章