LeetCode 326. 3 的幂

题目描述

326. 3 的幂

思路分析

解法一:循环除法(推荐)

核心思路

  • 3 的幂只能被 3 整除且最终会变为 1。
  • 反复执行 n /= 3,若过程中出现不能整除则返回 false
  • 最终 n == 1 则为 3 的幂。


复杂度分析

  • 时间复杂度:O(log n),其中 n 表示输入数值。
  • 空间复杂度:O(1),仅使用常数额外空间。
class Solution {
    public boolean isPowerOfThree(int n) {
        if (n <= 0) {
            return false;
        }

        while (n % 3 == 0) {
            n /= 3;
        }

        return n == 1;
    }
}
func isPowerOfThree(n int) bool {
	if n <= 0 {
		return false
	}

	for n%3 == 0 {
		n /= 3
	}

	return n == 1
}

相似题目

题目 难度 考察点
231. 2 的幂 简单 位运算
342. 4 的幂 简单 位运算
263. 丑数 简单 数学
367. 有效的完全平方数 简单 数学
169. 多数元素 简单 数学
本文作者:
本文链接: https://hgnulb.github.io/blog/2024/70375163
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!