LeetCode: Sum of Square Numbers

LeetCode: Sum of Square Numbers

Given a non-negative integer c, your task is to decide whether there're two integers a and b such that a2 + b2 = c.

Example 1:

Input: 5
Output: True
Explanation: 1 * 1 + 2 * 2 = 5

方法一:

簡單粗暴,嵌套依次遍歷, 時間復(fù)雜度O(n^2)

I/O : 2147483641 // => (測試超時)

Detail -> Time Limit Exceeded

var judgeSquareSum = function(c) {
    let sq = Math.sqrt(c)
    
    for(let i = 0; i <= sq; i++) {
        for(let j = i; j <= sq; j++) {
            let pdt = i ** 2 + j ** 2
            if(pdt === c) {
                return true
            } else if(pdt > c) {
                break
            }
        }
    }
    
    return false
};

方法二:

二分法,先取 0,sqrt(c) ,在逐步往中間縮小范圍,時間復(fù)雜度 O(n)

I/O : 2147483641 // => false

Detail -> cases: 124, Runtime: 68 ms

var judgeSquareSum = function(c) {
    let b = Math.sqrt(c) | 0
    let a = 0
    
    while(a <= b) {
        if (a * a + b * b < c) {
            a--
        } else if (a * a + b * b === c) {
            return true
        } else {
            b--
        }
    }
    
    return false
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一元二次函數(shù)的編程: def quadratic(a,b,c): ... xh=b*b-4*a*c ... ...
    淡水t海邊閱讀 153評論 0 0
  • 小記一下本周的幾件事情和小收獲: EOS信息小程序 做一個EOS信息小程序這個事情拖得有點(diǎn)長,感覺比起以前學(xué)習(xí)一樣...
    Purson閱讀 178評論 0 0
  • 人生目標(biāo)關(guān)鍵詞 健康*美麗、提升&工作、家庭&人際、財富 紀(jì)念日:無 金句: 一個人只有自己發(fā)自內(nèi)心的想改變,才...
    芙蓉照水閱讀 129評論 0 0
  • 就寢:22:50 起床:06:08 A.2018年度目標(biāo)及關(guān)鍵點(diǎn): * 工作目標(biāo):提高收入30% ...
    俞小寧閱讀 245評論 0 1
  • 1、RGB是光的三原色。CMYK為印刷顏料的四原色。 2、RGB模式的三原色是CMYK模式下的顏色的補(bǔ)色,反之亦然...
    youyeath閱讀 1,715評論 0 0

友情鏈接更多精彩內(nèi)容