LeetCode - Sqrt(x)
Posted incrediblechangshuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode - Sqrt(x)相关的知识,希望对你有一定的参考价值。
Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-negative integer. Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned. Example 1: Input: 4 Output: 2 Example 2: Input: 8 Output: 2 Explanation: The square root of 8 is 2.82842..., and since the decimal part is truncated, 2 is returned.
思路:用二分法来做,average时间复杂度 O(logn)
class Solution public int mySqrt(int x) if (x<2) return x; int l = 0; int h = x; int res = 0; while (l <= h) int m = l + (h-l)/2; if (m <= x/m && (m+1) > x/(m+1)) return m; if (m > x/m) h = m-1; else if (m < x/m) res = m; l = m+1; return res;
以上是关于LeetCode - Sqrt(x)的主要内容,如果未能解决你的问题,请参考以下文章