本文主要是介绍LeetCode OJ:Sqrt(x),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Sqrt(x)
Implement int sqrt(int x)
.
Compute and return the square root of x.
1、二分法
class Solution {
public:int sqrt(int x) {if(x < 0) return -1;long long target = (long long)x; long long left = 0;long long right = target;long long mid;while(left <= right){mid = left + (right - left) / 2; if(mid * mid == target || (mid * mid < target && (mid + 1) * (mid + 1) > target)){ return (int)mid; } else if(mid * mid < target){ left = mid + 1; } else{ right = mid - 1; } } }
};
answer2:牛顿迭代
class Solution {
public:int sqrt(int x) {if(x < 0) return -1;double n=x;while(abs(n*n-x)>0.0001)n=(n+x/n)/2;return (int)n;}
};
这篇关于LeetCode OJ:Sqrt(x)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!