1. 程式人生 > >LeetCode刷題記錄——第六十九題(x的平方根)

LeetCode刷題記錄——第六十九題(x的平方根)

題目描述

實現 int sqrt(int x) 函式。

計算並返回 x 的平方根,其中 x 是非負整數。

由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。

示例 1:

輸入: 4
輸出: 2

示例 2:

輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842…,
由於返回型別是整數,小數部分將被捨去。

思路分析

本質上還是分治法的思想

程式碼實現

class Solution:
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
min = 0 max = x mid = int(x/2) while min <= max: m = mid * mid if m < x: min = mid + 1 elif m > x: max = mid - 1 else: return mid mid = int((min + max)/2
) return mid