【leetcode】平方数之和

bool judgeSquareSum(int c){
    long long n = 0;
    while(n*n < c)n++;
    if (n*n == c)return true;
    long long i = n - 1;
    long long j = 1;
    while(i>=j)
    {
        while(i>=j && j*j + i*i < c)j++; //如果小于目标数 左边递加 直到大于或者等于目标数
        while(i>j && j*j + i*i > c)i--;     //如果大于目标数 右边递减 直到小于或者等于目标数
        if (i>=j && j*j + i*i == c) return true; 
        if (i == j) return false;
    }
    return false;
}

 

posted @ 2020-09-02 19:22  温暖了寂寞  阅读(141)  评论(0编辑  收藏  举报