每日一题2021/11/04

力扣:367. 有效的完全平方数

难度 简单

题目描述:

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

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

示例 1:

输入:num = 16
输出:true

示例 2:

输入:num = 14
输出:false

提示:

  • \(1\) <= num <= \(2^{31} - 1\)

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-perfect-square
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

根据 \(\sum\limits^{n}\limits_{i=1}{\left(2i-1\right)}=n^2\) 可以进行暴力破解:

class Solution {
public:
    bool isPerfectSquare(int num) {
        for (int i = 1; num > 0; i += 2) {
            num -= i;
        }

        return 0 == num;
    }
};

用时和内存的情况是0ms/5.7MB,超过了100%/89.189%

当然也可以二分查找 \(\sqrt{n}\) (就是在模拟sqrt 函数),对结果进行检测。

上一篇:jvm的搭建


下一篇:CF605E Intergalaxy Trips