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分类目录,贴了, , 标签。将固定链接加入收藏夹。

LEETCODE 326. Power of Three 解题思路分析》有1条回应

  1. fleck 5600 econominder说:

    I was suggested this blog by my cousin. I am
    not sure whether this post is written by him as nobody else know such detailed about
    my trouble. You are wonderful! Thanks!

发表评论

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