zoukankan      html  css  js  c++  java
  • May LeetCoding Challenge9 之 求方差

    两种解法:

    1.单独判断1,二分法在范围[2,num/2]搜索,如果平方与num相等,则返回true

    2.牛顿法

    JAVA

    class Solution {
        public boolean isPerfectSquare(int num) {
            if(num == 1) return true;
            long left = 2;
            long right = num/2;
            while(left <= right){
                long mid = left + (right-left)/2;
                if(mid*mid == num) return true;
                if(mid*mid > num) right = mid-1;
                else left = mid+1;
            }
            return false;
        }
    }
    class Solution {
      public boolean isPerfectSquare(int num) {
        if (num < 2) return true;
    
        long x = num / 2;
        while (x * x > num) {
          x = (x + num / x) / 2;
        }
        return (x * x == num);
      }
    }

    Python3

    class Solution:
        def isPerfectSquare(self, num: int) -> bool:
            if num == 1:
                return True
            left = 2
            right = num//2
            while left <= right:
                mid = left + (right-left)//2
                if mid*mid == num:
                    return True
                if mid*mid > num:
                    right = mid - 1
                else:
                    left = mid + 1
            return False
    class Solution:
        def isPerfectSquare(self, num: int) -> bool:
            if num < 2:
                return True
            
            x = num // 2
            while x * x > num:
                x = (x + num // x) // 2
            return x * x == num
  • 相关阅读:
    Struts2拦截器
    Struts2执行过程
    struts.xml属性extends的执行顺序和剖析源码
    Struts2请求流程图
    8.29 脏检查笔记
    transactionManager 以及datasource type解析
    Mybatis
    Interceptor
    ongl(示例3-6 多值类型的数据处理)
    ongl(原始类型和包装类型)
  • 原文地址:https://www.cnblogs.com/yawenw/p/12862220.html
Copyright © 2011-2022 走看看