【LeetCode每日一题】326. 3的幂
作者:互联网
326. 3的幂
题目
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3^x
示例
示例1
输入: n = 27
输出: true
示例2
输入: n = 0
输出: false
示例2
输入: n = 9
输出: true
示例2
输入: n = 45
输出: false
关键思路
我们采用递归的方法来解决问题。
设置好边界条件和递归条件即可:
- 边界条件:
- 若输入值 n=1 为 3 的最小幂,则返回 true。
- 若输入值 n 不能被3整除,则返回 false。
- 递归条件:
- 若输入值 n 大于0 并且能被3整除,则令输入值 n=n/3 继续向下递归。
代码实现
class Solution(object):
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
if n==1:
return True
if n>0 and n%3==0:
return self.isPowerOfThree(n/3)
else:
return False
运行结果
总结反思
提交多次后,发现Leetcode的执行用时和内存消耗很不稳定。明明代码和测试用例是一样的=.=
链接
https://leetcode-cn.com/problems/power-of-three/submissions
标签:false,递归,示例,每日,326,return,true,LeetCode,输入 来源: https://blog.csdn.net/m0_46753549/article/details/120433159