leetcode367-有效的完全平方數-JavaScript版

// 367 easy 有效的完全平方數

// 給定一個正整數 num,編寫一個函數,如果 num 是一個完全平方數,則返回 True,否則返回 False。
// 說明:不要使用任何內置的庫函數,如  sqrt。
//
// 示例 1:
// 輸入:16
// 輸出:True

// 示例 2:
// 輸入:14
// 輸出:False

/**
 * @param {number} num
 * @return {boolean}
 */
var isPerfectSquare = function(num) {
    if (num <= 0) return false;
    if (num === 1) return true;
    for(let i = 2; i <= Math.floor(num / 2); i++){
        if (i * i === num){
            return true;
        }
    }
    return false;
};


// 二分法
var isPerfectSquare2 = function(num) {
    if (num <= 0) return false;
    if (num === 1) return true;

    let left = 2;
    let right = Math.floor(num / 2);
    let mid = Math.floor((right + left) / 2)
    while(true){
        if (left > right)return false;
        if (mid * mid === num){ return true;}
        else if (mid * mid > num){
            right = mid - 1;
            mid = Math.floor((right + left) / 2)
        } else{
            left = mid + 1;
            mid = Math.floor((right + left) / 2)
        }
    }
};
console.log(isPerfectSquare2(16))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章