【LeetCode简单题69】14 -- x的平方根

声明

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

(手动比心ღ( ´・ᴗ・` ))

题目

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

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

示例 1:

输入: 4
输出: 2
示例 2:

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

链接:https://leetcode-cn.com/problems/sqrtx

正文

毫无想法。如何实现开方,在取整。
取整说的不准确,正确的是向下取整。查阅资料后,得出两个思路。
一是二分法,二是牛顿法。

思路1:二分法查找
思路:
注意事项:

边界值选取问题;
while left < right: 还是while left <= right:

特殊值
时间复杂度分析
分析下面三个代码
(a)

class Solution:
    def mysqrt(self,x):
        left = 0
        right = x

        mid = (x)//2
        while left <right: # < input 8,return 3
            mid_2 = pow(mid,2)
            if mid_2 < x:
                left = left + 1
            elif mid_2 

你可能感兴趣的:(LeetCode简单题,LeetCode,x的平方根)