367. 有效的完全平方数
题目:
思路:
【1】这道题的难度在于int数据会存在溢出的情况,所以用乘法是不可行的,虽然逻辑上能说的通,而且就算换上long类型也一样扛不住啊,所以改用除法,但是除法会有一个问题就是不能除以0【这个需要考虑处理】。
代码展示:
//时间0 ms 击败 100% //内存38.2 MB 击败 39.91% class Solution { public boolean isPerfectSquare(int num) { if (num == 1) return true; int l = 0 , r = num; while (l < r){ int mid = (r - l) / 2 + l; long sum = num/mid; if (sum == mid){ l = mid; break; }else if (sum < mid){ r = mid; }else { l = mid + 1; } } return l*l == num; } }