脚本宝典收集整理的这篇文章主要介绍了LeetCode 367: isValidSquare 是否是完全平方数 (Java),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
题目:给一个正整数,判断它是不是完全平方数。
解法:
public static int mySqrt(int x) { if(x == 0) return 0; int left = 1, right = Integer.MAX_VALUE; while(true){ int mid = left + (right-left)/2; if(mid > x/mid) right=mid-1; else{ if(mid+1>x/(mid+1)) return (int)mid; left=mid+1; } } } public static boolean isPerfectSquare(int num) { if(num == 0) return true; int left = 1, right = mySqrt(Integer.MAX_VALUE); while(right >= left){ int mid = left + (right-left)/2; if(mid*mid == num) return true; else if(mid*mid > num) right = mid - 1; else left = mid + 1; } return false; }
2.数学技巧:所有的完全平方数都可以被表示成奇数和1+3+5+7+9 ...。
public boolean isPerfectSquare(int num) { int i = 1; while (num > 0) { num -= i; i += 2; } return num == 0; }
以上是脚本宝典为你收集整理的LeetCode 367: isValidSquare 是否是完全平方数 (Java)全部内容,希望文章能够帮你解决LeetCode 367: isValidSquare 是否是完全平方数 (Java)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。