题目链接:326. 3的幂
2020.10.15第一次解答:
我是憨批...根据上一道题的逆向思维,想到逆向生成3的幂验证了,结果,我给挨个存容器里了...
时空巨大浪费...羞愧
解题思路
根据逆向思维,对基数1不断乘3。如果等于n,则返回true;若已经大于n还未相等,说明n不是3的幂
C++代码
class Solution {
public:
bool isPowerOfThree(int n) {
int a = 1;
while (n >= a)
{
if (a == n) return true;
if (a >= INT_MAX / 3) return false;
a *= 3;
}
return false;
}
};