标签:false 递归 示例 每日 326 return true LeetCode 输入
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。