首页 > 其他 > 详细

p72 两个完全平方数的和(leetcode63)

时间:2020-04-02 20:20:10      阅读:50      评论:0      收藏:0      [点我收藏+]

一:解题思路

我们之前做个一道题,在一个有序数组中,求和为定值的两个数。当时是采用类似二分搜索的方法来做的。同样这道题目也可以采用类似的方法来做,让两个游标i=0,j=(int)根号c,然后利用二分的思想来做。

二:完整代码示例 (C++版和Java版)

C++:

class Solution {
public:
    bool judgeSquareSum(int c) 
    {
        int i = 0, j = (int)sqrt(c);

        while (i<=j)
        {
            long sum = (i * i + (long)(j * j));
            if (sum == c)
            {
                return true;
            }
            else if (sum < c)
            {
                i++;
            }
            else
            {
                j--;
            }
        }

        return false;
    }
};

Java:

class Solution {
        public boolean judgeSquareSum(int c)
        {
               int i=0,j=(int)Math.sqrt(c);
               
               while(i<=j)
               {
                   int sum=i*i+j*j;
                   if(sum==c)
                   {
                       return true;
                   }
                   else if(sum<c)
                   {
                       i++;
                   }
                   else
                   {
                       j--;
                   }
               }
               
               return false;
        }
    }

 

p72 两个完全平方数的和(leetcode63)

原文:https://www.cnblogs.com/repinkply/p/12621995.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!