• 69. Sqrt(x)


    Implement int sqrt(int x).

    Compute and return the square root of x, where x is guaranteed to be a non-negative integer.

    Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.

    Example 1:

    Input: 4
    Output: 2
    

    Example 2:

    Input: 8
    Output: 2
    Explanation: The square root of 8 is 2.82842..., and since 
                 the decimal part is truncated, 2 is returned.

    注意:搜索范围 [1, x],判断条件 mid <= x / mid

    time: O(x), space: O(1)

    class Solution {
        public int mySqrt(int x) {
            if(x == 0) {
                return 0;
            }
            int left = 1, right = x;
            int res = 0;
            while(left <= right) {
                int mid = left + (right - left) / 2;
                if(mid <= x / mid) {
                    left = mid + 1;
                    res = mid;
                } else {
                    right = mid - 1;
                }
            }
            return res;
        }
    }
  • 相关阅读:
    【概念】指针
    【c++】随机数
    组装一台计算机
    模拟打印机
    实现手机的某些功能
    作业
    static 静态内部类
    java中编译报错 ClassCastException 是什么原因,如何处理
    作业1 2
    作业2
  • 原文地址:https://www.cnblogs.com/fatttcat/p/10229531.html
Copyright © 2020-2023  润新知