zoukankan      html  css  js  c++  java
  • 367. Valid Perfect Square

    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

     

    Solution 1: use BST,O(logn)

     1 class Solution {
     2 public:
     3     bool isPerfectSquare(int num) {
     4         if (num==1) return true;
     5         int begin=0,end=num;
     6         while (begin<end-1){
     7             long long mid=(begin+end)/2;
     8             if (mid*mid==num) return true;
     9             if (mid*mid<num) begin=mid;
    10             if (mid*mid>num) end=mid;
    11         } 
    12         return false;
    13     }
    14 };

    Solution 2: Newton's method,  http://blog.csdn.net/wangxiaojun911/article/details/18203333

    1 class Solution {
    2 public:
    3     bool isPerfectSquare(int num) {
    4         long long x=num;
    5         while(x*x>num) x=(x+num/x)/2;
    6         return x*x==num;
    7     }
    8 };

    Soulution 3:  q_math.c special method, O(1)

  • 相关阅读:
    只会写“Hello World”的菜鸟心声
    新的旅程
    生成[1,2,,3,4,5,6,7,8,9]的随机数组?
    计算java集合中自定义对象出现的次数
    iOS https 证书信任漏洞解决办法
    自定义 URL Scheme 完全指南
    Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64
    url schemes格式错误
    给UITapGestureRecognizer添加tag
    iOS GIF 格式动画 图片显示
  • 原文地址:https://www.cnblogs.com/anghostcici/p/6821265.html
Copyright © 2011-2022 走看看