367. 有效的完全平方数【我亦无他唯手熟尔】

简介: 367. 有效的完全平方数【我亦无他唯手熟尔】

367. 有效的完全平方数

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

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

示例 1:

输入:num = 16
输出:true

示例 2:

输入:num = 14
输出:false

提示:

  • 1 <= num <= 231 - 1

题解

思路:使用sqrt函数
class Solution {
    public boolean isPerfectSquare(int num) {
        double r=Math.sqrt(num);
       // return r==(int)r?true:false;
       return r==(int)r;
    }
}


如果是判断一个数是否是2的幂次方

思路
2的幂次方的二进制是前面一个1后面都是0
2的幂次方-1的二进制是前面一个0后面都是1
二者与运算就会得到0
class Solution {
    public boolean isPerfectSquare(int num) {
        int n=num&num-1;
        //return n==0?true:false;
        return n==0;
    }
}
相关文章
598. 范围求和 II【我亦无他唯手熟尔】
598. 范围求和 II【我亦无他唯手熟尔】
63 0
260. 只出现一次的数字 III【我亦无他唯手熟尔】
260. 只出现一次的数字 III【我亦无他唯手熟尔】
44 0
|
算法
563. 二叉树的坡度【我亦无他唯手熟尔】
563. 二叉树的坡度【我亦无他唯手熟尔】
55 0
869. 重新排序得到 2 的幂【我亦无他唯手熟尔】
869. 重新排序得到 2 的幂【我亦无他唯手熟尔】
47 0
1446. 连续字符【我亦无他唯手熟尔】
1446. 连续字符【我亦无他唯手熟尔】
53 0
299. 猜数字游戏【我亦无他唯手熟尔】
299. 猜数字游戏【我亦无他唯手熟尔】
60 0
|
算法
136 137 260只出现一次的数字【我亦无他唯手熟尔】
136 137 260只出现一次的数字【我亦无他唯手熟尔】
79 0
400. 第 N 位数字【我亦无他唯手熟尔】
400. 第 N 位数字【我亦无他唯手熟尔】
70 0
136. 只出现一次的数字【我亦无他唯手熟尔】
136. 只出现一次的数字【我亦无他唯手熟尔】
63 0
575. 分糖果【我亦无他唯手熟尔】
575. 分糖果【我亦无他唯手熟尔】
58 0
下一篇
DataWorks