LeetCode-367. 有效的完全平方数

171 阅读1分钟

1.题目描述

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。

进阶:不要 使用任何内置的库函数,如 sqrt 。

示例 1:

输入:num = 16
输出:true

示例 2:

输入:num = 14
输出:false

提示:

  • 1 <= num <= 2^31 - 1

Tips: 力扣地址:leetcode-cn.com/problems/va…

2. 思路分析

完全平方数就是能够被开平方根,且获得的数据为整数。存在这样的一个数学等式num = x * x。所以我们可以从1开始,从小到大遍历所有的小于等于num的整数。寻找是否满足数学等式num = x * x。在遍历过程中如果出现了x < num,并且x * x > num的情况,那么更大的数字x小于num也不能满足num = x * x这个时候要停止遍历。

3. AC代码

class Solution {
    public boolean isPerfectSquare(int num) {
      for(int i = 1; i <= num/i; ++i){
            if(i * i == num){
                return true;
            }
        }
        return false;
    }
}

运行结果:

image.png

4. 总结

这一类数学问题的题目,首先要理解什么是完全平方数。然后在概念的基础上下手。转换成代码实现。在实现的过程中可以对一些情况进行优化,比如一些特殊的条件。以及对遍历范围的缩小等等。

我是蚂蚁背大象,文章对你有帮助点赞关注我,文章有不正确的地方请您斧正留言评论~谢谢