首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Leetcode No.69 x平方

题目描述 实现 int sqrt(int x) 函数。 计算并返回 x平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。...示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。...解题思路1:暴力破解 1、当x=0时,返回0 2、当x>=4时,从2开始遍历至x/2,当前游标平方小于等于x且游标加一的平方大于x时,返回游标 3、当x>0且x<4时,返回1 class Solution...} return 1; } }; 复杂度分析 1、时间复杂度:O(n) 2、空间复杂度:O(1) 解题思路2:二分查找 由于 x 平方根的整数部分 rs 是满足 k^2 ≤x 的最大...二分查找的下界为 0,上界可以粗略地设定为 x。在二分查找的每一步中,我们只需要比较中间元素 mid 的平方x的大小关系,并通过比较的结果调整上下界的范围。

52530

LeetCode-69. x平方根(java)

二、题目描述: 题目:        给你一个非负整数 x ,计算并返回 x 的 算术​​​平方根​​ 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。...注意:        不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。...具体请看如下示例: 示例 1: 输入:x = 4 输出:2 示例 2: 输入:x = 8 输出:2 解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。...)等函数方法的情况下,得到 x平方根的整数部分。        ...一般的思路会有以下几种:   通过其它的数学函数代替平方根函数得到精确结果,取整数部分作为答案;  通过数学方法得到近似结果,直接作为答案。

27930

​LeetCode刷题实战69:x平方

今天和大家聊的问题叫做 x平方根,我们先来看题面: https://leetcode-cn.com/problems/sqrtx/ Implement int sqrt(int x)....Compute and return the square root of x, where x is guaranteed to be a non-negative integer....题意 实现 int sqrt(int x) 函数。 计算并返回 x平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。...样例 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。...从数字1开始找,一旦找到平方值等于x的数字i,直接返回i。如果找到平方值大于x的数字i,需要返回i - 1。 需要注意的是,为了防止做乘法运算时越界,需要强转为long类型。

24510

LeetCode 69. x平方根(二分)

题目 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。...示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842...,   由于返回类型是整数,小数部分将被舍去。...思路 采用二分法每次找到中间元素与x比较大小,大则在左边查找,小则在右边查找 每次判断一下lo(最左边元素)的平方与lo + 1的平方: if (pow(hi, 2) x)这就说明x平方根是lo到lo + 1之间的值,所以直接返回lo即可 判断hi同理 class Solution { public: int res = 0; void...2; Sqrt(lo, hi, x); } } int mySqrt(int x) { int lo = 0, hi = x;

18810

字节笔试题 leetcode 69. x平方

题目要求非负整数 x平方根,相当于求函数 y = √x 中 y 的值,函数 y = √x 图像如下: ?...解题细节 1、由于当 x 为非负整数时,其平分根一定在区间 [1, x/2 + 1] 内,所以为了缩小查找的范围,二分的左右边界分别取 left = 1 和 right = x / 2 + 1,而不分别取...0 和 x; 2、为了防止在查找过程中比较 mid * mid 和 x 中前者值太大,超出整型范围而溢出,取 mid 与 x / mid 进行比较(mid 为 解题细节 1 中 的 left 和 right...return mid; } } return right; } # python3 版本 class Solution: def mySqrt...x = 1 时,如果 right 取 x / 2 的话,由于 x/2 = 0,此时 left = 1 大于 right,直接循环跳出,导致 x平方根为 0 而不是 1 出错; 最后是 return

32220

【leetcode刷题】T187-x平方

木又连续日更第37天(37/100) ---- 木又的第187篇leetcode解题报告 数学类型第3篇解题报告 leetcode第69题:x平方根 https://leetcode-cn.com/...计算并返回 x平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。...示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。...【思路】 可以暴力解决,从0遍历到x,遇到第一个数num*num > x,则返回num-1。 另一种想法,参考二分查找—寻找最后一个小于x的数。...< l return l - 1 【代码】 python版本 暴力 class Solution(object): def mySqrt(self, x): """

39320
领券