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)的主要内容,如果未能解决你的问题,请参考以下文章