LEETCODE 326. Power of Three 解题思路分析

题目大意:

3的幂

给定一个整数,写一个函数来判断它是否是 3 的幂次方。

示例 1:

输入: 27
输出: true

示例 2:

输入: 0
输出: false

示例 3:

输入: 9
输出: true

示例 4:

输入: 45
输出: false

进阶:
你能不使用循环或者递归来完成本题吗?


如果想查看本题目是哪家公司的面试题,请参考以下免费链接: https://leetcode.jp/problemdetail.php?id=326

解题思路分析:

本题是一道纯数学题目,并且题目要求不能使用递归和循环。其实在int型取值范围内,3的幂运算的结果只有21个即:3的0次幂到3的20次幂。因此,我们只要判断3的20次幂与n的余数是否为0即可。

实现代码:

public boolean isPowerOfThree(int n) {
    return n>0 && Math.pow(3, 20) % n == 0;
}

本题解法执行时间为11ms。

Runtime: 11 ms, faster than 87.46% of Java online submissions for Power of Three.

Memory Usage: 40.6 MB, less than 6.25% of Java online submissions for Power of Three.

本网站文章均为原创内容,并可随意转载,但请标明本文链接
本文链接: https://leetcode.jp/leetcode-326-power-of-three-解题思路分析/
此条目发表在leetcode分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。