码迷,mamicode.com
首页 > 其他好文 > 详细

【easy】367. Valid Perfect Square 判断是不是平方数

时间:2018-01-16 00:47:53      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:pos   color   class   ++   学习   ali   超时   ret   int   

class Solution {
public:
    bool isPerfectSquare(int num) {
        /*
        //方法一:蜜汁超时……
        if (num < 0) return false;
        if (num == 1) return true;
        for (int i=1;i*i<=num;i++){
            if (i*i==num)
                return true;
        }
        return false;
    }*/
    
        /*
        //方法二:是对的!
        if(num < 0) return false;
        if(num == 1) return true;
        for(int i = 1; i<= num/i;i++){
              if(i*i == num) return true;
        }
        return false;     
    } */
        //方法三:值得学习的【二分查找】
        if (num < 0) return false;
        if (num == 1) return true;
        int left = 0;       //注意!
        int right = num/2;  //注意!
        long mid;
        long val;
        while (left <= right){
            mid = (left + right)/2;
            val = mid * mid;
            if (val == num) return true;
            else if (val > num) right = mid - 1;
            else left = mid + 1;
        }
        return false;
    }     
        
};

 

【easy】367. Valid Perfect Square 判断是不是平方数

标签:pos   color   class   ++   学习   ali   超时   ret   int   

原文地址:https://www.cnblogs.com/sherry-yang/p/8290248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!