我的代码如下:
import math
class Solution(object):
def mySqrt(self, x):
"""
:type x: int
:rtype: int
"""
if x == 0: return 0
res = pow(math.e, 0.5 * math.log(x))
print(res)
return int(res)
这是基于以下想法:
当测试用例为
4
时,预计会输出2
,但它会返回1
。
我检查了
res
的值,即 2.0
。
那么这里有什么问题呢?
class Solution {
public int mySqrt(int x) {
long i = 0;
long j = x;
int mid = 0;
if (x == 0) {
return 0;
}
if (x == 1) {
return 1;
}
while (i <= j) {
mid = (int)(i + j)/2;
if (x/mid == mid) {
return (int)mid;
} else if (x/mid > mid) {
i = mid + 1;
} else if (x/mid < mid) {
j = mid - 1;
}
}
return (int)j;
}
}
在 Leetcode 上使用 Java 格式尝试此代码,您将通过...