程序媛詹妮弗
终身学习

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

Note: Do not use any built-in library function such as sqrt.

Example 1:

Input: 16
Returns: True

Example 2:

Input: 14
Returns: False

 

题意:

验证完全平方数

 

思路:

二分查找,可回顾之前[leetcode]278. First Bad Version首个坏版本 笔记

需要注意的是类型声明为long

 

代码:

 1 class Solution {
 2   public boolean isPerfectSquare(int num) {
 3         long left = 0;
 4         long right = num;
 5 
 6         while (left <= right) {
 7             long mid = left + (right - left) / 2;
 8             if (mid * mid == num) {
 9                 return true;
10             } else if (mid * mid < num) {
11                 left = mid + 1;
12             } else {
13                 right = mid - 1;
14             }
15         }
16         return false;
17     }    
18 }

 

 

posted on 2018-06-05 05:01  程序媛詹妮弗  阅读(104)  评论(0编辑  收藏  举报