今天和大家聊的问题叫做 有效的完全平方数,我们先来看题面:https://leetcode-cn.com/problems/valid-perfect-square/
Given a positive integer num, write a function which returns True if num is a perfect square else False.
Follow up: Do not use any built-in library function such as sqrt.
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。
示例
示例 1: 输入:num = 16 输出:true 示例 2: 输入:num = 14 输出:false
解题
class Solution { public boolean isPerfectSquare(int num) { if (num < 2) { return true; } long left = 2, right = num / 2, x, guessSquared; while (left <= right) { x = left + (right - left) / 2; guessSquared = x * x; if (guessSquared == num) { return true; } if (guessSquared > num) { right = x - 1; } else { left = x + 1; } } return false; } } 作者:LeetCode 链接:https://leetcode-cn.com/problems/valid-perfect-square/solution/you-xiao-de-wan-quan-ping-fang-shu-by-leetcode/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。