💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室到实验室最快3分钟,最慢3分半(那半分钟其实是等红绿灯)
📝个人主页:应无所住而生其心的博客_府学路18号车神_CSDN博客
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
📖本系列主要以刷LeetCode(力扣)网站的各类题为标准,实现自我能力的提升为目标⚡
⚡希望大家多多支持🤗~一起加油 😁
- 专栏—>《LeetCode天梯》
其他专栏:
今天起得有一定的晚了,然鹅,Boss也没来,这。。。项目俩周没动静,甲方又不说,谁知道啥情况,今天又突然开会,明天害得开会,加油吧!~还有一年半,毁灭吧!
每天进步一点点,就已经很棒很棒了,坚持坚持,不要太累,拒绝内卷,从每日一练开始,每天十分钟,快乐生活一辈子!疫情依旧反复,大家带好口罩啊~ 继续继续,来,今天和车神哥一起来提升自己的Python编程和面试能力吧,刷天梯~
放上我拍的Photo吧!

每日推荐一首歌:清风徐来——王菲
以下为我的天梯积分规则:
每日至少一题:一题积分+10分
若多做了一题(或多一种方法解答),则当日积分+20分(+10+10)
若做了三道以上,则从第三题开始算+20分(如:做了三道题则积分-10+10+20=40;做了四道题则积分–10+10+20+20=60)
初始分为100分
若差一天没做题,则扣积分-10分(周六、周日除外注:休息)
坚持!!!
初级算法
刷题目录
数学

题干
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x
示例1:
输入:n = 27
输出:true
示例2:
输入:n = 0
输出:false
示例3:
输入:n = 9
输出:true
示例4:
输入:n = 45
输出:false
常规法
分析:
数学问题都还相对简单,我们对3进行整除,除到不等于3为止,再判断返回n是否等于1。
class Solution:
def isPowerOfThree(self, n: int) -> bool:
if n > 0:
while n % 3 == 0:
n /=3
return n == 1

中规中矩!
递归法
递归就只需要返回一行就搞定。
class Solution:
def isPowerOfThree(self, n: int) -> bool:
return n > 0 and (n==1 or (n%3==0 and self.isPowerOfThree(n/3)))

算术表达式
class Solution:
def isPowerOfThree(self, n: int) -> bool:
return (log10(n) / log10(3)) % 1 == 0
理论上是可以的,不知道为啥出了戳!~
最后一种
来自评论区大佬的解法,绝了:
题中n的范围是-2^31 <= n <= 2^31 - 1,而在这个范围内3的最大幂是1162261467,在比他大就超过int表示的范围了,我们直接用它对n求余即可,过求余的结果是0,说明n是3的幂次方
class Solution:
def isPowerOfThree(self, n: int) -> bool:
return (n > 0 and 1162261467 % n ==0)

数学类的问题解法多种多样,就像数学本身一样,一道题有多种解!~
加油!~
Reference
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnsdi2/
来源:力扣(LeetCode)
作者:数据结构和算法
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnsdi2/?discussion=xhUFcs
来源:力扣(LeetCode)
今日得分:+10+10+20+20
总得分:900加油!!!
❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!打天梯!!!
⚡To Be No.1⚡⚡哈哈哈哈
⚡创作不易⚡,过路能❤关注、收藏、点个赞❤三连就最好不过了
ღ( ´・ᴗ・` )
❤
『
工欲善其事,必先利其器。
』
889

被折叠的 条评论
为什么被折叠?



