美文网首页
leetcode-Easy-32-tree-sqrt

leetcode-Easy-32-tree-sqrt

作者: 石头说钱 | 来源:发表于2019-05-22 23:25 被阅读0次

题目

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.
var mySqrt = function(x) {
   let min = 0;
    let max = x;
    let mid;
    
    while(min < max) {
        mid = (min + max) / 2
        squared = mid*mid;
        if (squared === x) {
            return mid;
       // 无法完全开平方,不处理一直二分下去无答案,会栈溢出
        } else if (Math.floor(min) === Math.floor(max)) {
            return Math.floor(mid);
        } else if (squared > x) {
            max = mid;
        } else if (squared < x) {
            min = mid;
        } 
    }
    
    return 0;
};
  • 方法二
function mySqrt(x){
  return Math.trunc(Math.sqrt(x))
}

  • 方法三
function mySqrt(x){
  for (var i = 0; ;i++) {
    if (i * i > x) {
        return i - 1;
    }
  }
  return false;
}

相关文章

网友评论

      本文标题:leetcode-Easy-32-tree-sqrt

      本文链接:https://www.haomeiwen.com/subject/ezfmzqtx.html