[leetcode]633. Sum of Square Numbers

来源:互联网 发布:中国网络直播第一人 编辑:程序博客网 时间:2024/06/06 22:45

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: 5Output: TrueExplanation: 1 * 1 + 2 * 2 = 5

Example 2:

Input: 3Output: False

方法一:两遍for循环, 复杂度o(n2), 会time limit 报错

public boolean judgeSquareSum(int c) {        for(int i=0;i<=c;i++) {            for(int j=0;j<=c;j++) {                if(i*i+j*j==c) {                    return true;                }            }        }        return false;    }

方法二:从0 和sqrt(n)两端分别查找

public boolean judgeSquareSum2(int c) {        int low = 0;        int high = (int)Math.sqrt(c);        while(low<=high) {            int sum = low*low+high*high;            if(sum<c) {                low++;            } else if(sum>c) {                high--;            } else {                return true;            }        }        return false;    }

原创粉丝点击