Leetcode 69. Sqrt(x)

Posted Deribs4

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 69. Sqrt(x)相关的知识,希望对你有一定的参考价值。

69. Sqrt(x)

Total Accepted: 99997 Total Submissions: 388728 Difficulty: Medium

 

Implement int sqrt(int x).

Compute and return the square root of x.

 

思路:可以直接用sqrt函数。但实际上这题考察的是二分查找。

代码:
最简单的方法:

1 class Solution {
2 public:
3     int mySqrt(int x) {//1579205274
4         int half=(int)sqrt(x);
5         return half;
6     }
7 };

 

二分查找:

 1 class Solution {
 2 public:
 3     int mySqrt(int x) {//1579205274
 4         if(x<=1){
 5             return x;
 6         }
 7         int left=1,right=x,mid;//左闭右开
 8         while(left<right){
 9             mid=left+(right-left)/2;//直接使用(high + low) / 2 可能导致溢出
10             if(x/mid>=mid){
11                 left=mid+1;
12             }
13             else{
14                 right=mid;
15             }
16         }
17         return left-1;
18     }
19 };

 

以上是关于Leetcode 69. Sqrt(x)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 69. Sqrt(x)

leetcode二分 | 牛顿迭代法69_Sqrt(x)

LeetCode 69. Sqrt(x)

#Leetcode# 69. Sqrt(x)

[LeetCode] 69. Sqrt(x)

69. Sqrt(x)(LeetCode)