Skip to content
On this page
✍️Younglina🕐2022-01-19 🔗 双指针简单

题目描述

633.平方数之和
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。

示例 1:

输入:c = 5  
输出:true  
解释:1 * 1 + 2 * 2 = 5  

示例 2:

输入:c = 3  
输出:false  

示例 3:

输入:c = 4  
输出:true  

提示

0 <= c <= 231 - 1

思路

定义双指针i,j分别为0,Math.ceil(Math.sqrt(c))r=i*i+j*j

  • r===c return true
  • r<c i++
  • r>c j--

题解

javascript
var judgeSquareSum = function(c) {
    let [i,j] = [0,Math.ceil(Math.sqrt(c))]
    while(i<=j){
        let r = i*i+j*j
        if(r === c){
            return true
        }else if(r>c){
            j--
        }else{
            i++
        }
    }
    return false
};