My code:
public class Solution {
public boolean isPerfectSquare(int num) {
if (num < 0) {
return false;
}
else if (num <= 1) {
return true;
}
int begin = 1;
int end = num - 1;
while (begin <= end) {
int mid = begin + (end - begin) / 2;
int temp = num / mid;
if (temp < mid) {
end = mid - 1;
}
else if (temp > mid) {
begin = mid + 1;
}
else if (num % mid != 0) {
return false;
}
else {
return true;
}
}
return false;
}
}
自己写出来的。
本来以为不会有溢出的测试例子,没想到还是有。
然后只能再详细写一下。
题目本身不难。
然后看了下discuss,觉得有个解法很有意思。
具体见:
https://discuss.leetcode.com/topic/49325/a-square-number-is-1-3-5-7-java-code/5
Anyway, Good luck, Richardo! — 09/01/2016