LeetCode 69[x的平方根]

题目

链接

LeetCode 69[x的平方根]

详情

实例

提示

题解

思路

由于所求的是整型且是正符号整型,可以采取循环遍历的方式来求取平方根

用 for 循环将 i 由 0 开始遍历,求平方值

当平方值小于指定值,此时循环继续

直到以下两种情况时退出循环:

  1. 当平方值为指定值时,返回 i 
  2. 当平方值大于指定值时,返回 i - 1

当 i 为有符号整型时,其遍历到 46341 时,平方值为 2147488281 ,但是力扣官方的 int 值的范围最大值为 2147483647,故其会溢出,所以 i 应该设置为 unsigned int 型

代码

class Solution {
public:
    int mySqrt(int x) {
        for (unsigned int i = 0;;i++)
        {
            if (x == i * i)
                return i;
            
            if (i * i > x)
                return i - 1;
        }
    }
};
posted @ 2024-11-13 11:16  EricsT  阅读(10)  评论(0编辑  收藏  举报