LeetCode 69[x的平方根]

EricsT發表於2024-11-13

題目

連結

LeetCode 69[x的平方根]

詳情

LeetCode 69[x的平方根]

例項

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;
        }
    }
};

相關文章