最强解析面试题: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))的主要内容,如果未能解决你的问题,请参考以下文章
二分法万能模板,告别死循环越界Leecode 69. Sqrt(x)——Leecode日常刷题系列