首页 > 代码库 > Leetcode | Sqrt(x)

Leetcode | Sqrt(x)

Implement int sqrt(int x).

Compute and return the square root of x.

线性查找会TLE。用二分查找。注意溢出的处理。全部都改成long long.

 1 class Solution { 2 public: 3     int sqrt(int x) { 4         if (x <= 1) return x; 5         long long l = 1, r = x / 2 + 1; 6          7         while (l <= r) { 8             long long m = (l + r) / 2; 9             long long v = m * m;10             if (v == x) return m;11             else if (v < x) {12                 l = m + 1;13             } else {14                 r = m - 1;15             }16         }17         18         return r;19     }20 };

 

Leetcode | Sqrt(x)