最强解析面试题:x 的平方根(Sqrt(x))

Posted 魏小言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:x 的平方根(Sqrt(x))相关的知识,希望对你有一定的参考价值。


最强解析面试题:x 的平方根(Sqrt(x))

文章讲解 “ x 的平方根(Sqrt(x)) ” 经典面试题,包含思路及源码,及解惑!

题目

实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例

输入: 4
输出: 2

思路

二分法

代码

package main

import (
"fmt"
)

func main() 
   fmt.Println("hello https://tool.lu/", Sqrt(0))
   fmt.Println("hello https://tool.lu/", Sqrt(1))
   fmt.Println("hello https://tool.lu/", Sqrt(2))
   fmt.Println("hello https://tool.lu/", Sqrt(4))
   fmt.Println("hello https://tool.lu/", Sqrt(8))

func Sqrt(x int) int 
   l, r, mid := 0, x+1, 0
   for l < r 
      mid = (l + r) >> 1
      if mid*mid < x 
         l = mid + 1
       else 
         r = mid
      
   
   return l - 1

附录

自负和自大真的是搞笑!

以上是关于最强解析面试题:x 的平方根(Sqrt(x))的主要内容,如果未能解决你的问题,请参考以下文章

最强解析面试题:和为N的三个数字

实现 sqrt(x):二分查找法和牛顿法

LeetCode算法题-Sqrt(Java实现)

二分法万能模板,告别死循环越界Leecode 69. Sqrt(x)——Leecode日常刷题系列

二分法万能模板,告别死循环越界Leecode 69. Sqrt(x)——Leecode日常刷题系列

最强解析面试题:接雨水...