zoukankan      html  css  js  c++  java
  • 微软面试题: LeetCode 69. x 的平方根 easy 出现次数:6

    题目描述:

    实现 int sqrt(int x) 函数。

    计算并返回 x 的平方根,其中 x 是非负整数。

    由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

    示例 2:

    输入: 8
    输出: 2
    说明: 8 的平方根是 2.82842..., 
         由于返回类型是整数,小数部分将被舍去。

     1 class Solution {
     2 public:
     3 //二分法 Time O(log x) 空间 O(1) 
     4     int mySqrt(int x)
     5     {
     6         long int l = 1,h = x; // 目标值一定在 区间[l,h]内
     7         while(h - l > 1) //在区间只剩下两个元素时就要跳出循环,防止陷入死循环
     8         {
     9             long mid = l + (h - l)/2;
    10             if(mid*mid == x)    return mid;
    11             else if(mid*mid > x) //mid 肯定不是目标值了,区间范围缩小到[l,mid - 1]
    12             {
    13                 h = mid -1;
    14             }
    15             else //mid 仍然可能是目标值 区间范围 [mid,h],设置 while 条件 为 h - l > 1就是为了防止此处陷入死循环
    16             {
    17                 l = mid;
    18             }
    19         }
    20         //区间内只可能还有 1 个元素 或者 2 个元素,优先取后面一个
    21         return h*h <= x?h:l;
    22     }
    23 };
  • 相关阅读:
    cacti (可以利用yum安装cacti的配置)
    zabbix
    HA集群
    DNS搭建
    MySQL主从配置
    解析jsp的 tomcat 、resin
    samba
    squid 代理服务
    Application binary interface and method of interfacing binary application program to digital computer
    Pyqt4的事件与信号
  • 原文地址:https://www.cnblogs.com/wangxf2019/p/14091126.html
Copyright © 2011-2022 走看看