leetcode367. Valid Perfect Square]

Posted godlei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode367. Valid Perfect Square]相关的知识,希望对你有一定的参考价值。

题目描述:

Given a positive integer num, write a function which returns True if num is a perfect square else False.

解题分析:

这种找数字的题一般都用类似与二分查找的算法。需要注意的是比较平方和时考虑到integer溢出的情况。所以这个结果是要用Long类型保存。由此到来的改变是判断相等时要用“equals()”方法,而不是“==”。

实现代码:

 1 public class Solution {
 2     public static boolean isPerfectSquare(int num) {
 3         if(num==1||num==4)
 4             return true;
 5         if(num<=0||num==2||num==3)
 6             return false;
 7         int from=0;
 8         int to=num;
 9         while(from<=to){
10             int mid = (from+to)/2;
11             Long result = (long)mid * (long)mid;
12             if(result.equals(Long.valueOf(num+"")))
13                 return true;
14             if(result<num){
15                 from=mid+1;
16             }
17             if(result>num){
18                 to=mid-1;
19             }
20             
21         }
22         return false;
23     }
24 }

 

以上是关于leetcode367. Valid Perfect Square]的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 367. Valid Perfect Square

[leetcode] 367. Valid Perfect Square

LeetCode 367. Valid Perfect Square

LeetCode 367. Valid Perfect Square

Python 解LeetCode:367. Valid Perfect Square

leetcode367. Valid Perfect Square]