作者:262610 | 来源:互联网 | 2024-09-28 12:00
C++ LeetCode1780判断数字是否可以表示成三的幂的和-目录LeetCode 1780.判断一个数字是否可以表示成三的幂的和方法一:二进制枚举题目分析解题思路复杂度分析A
目录
- LeetCode 1780.判断一个数字是否可以表示成三的幂的和
- 方法一:二进制枚举
- AC代码
- 方法二:进制转换
- AC代码
LeetCode 1780.判断一个数字是否可以表示成三的幂的和
力扣题目链接:leetcode.cn/problems/ch…
给你一个整数 n
,如果你可以将 n
表示成若干个不同的三的幂之和,请你返回 true
,否则请返回 false
。
对于一个整数 y
,如果存在整数 x
满足 y == 3x
,我们称这个整数 y
是三的幂。

方法一:二进制枚举
题目分析

解题思路
那么,我们直接开辟一个数组,把所有的小于等于nnn的“3的幂”放入数组
vector three(1, 1); // 初始值是1个1
while (three.back()

int num = three.size(), to = 1 <
复杂度分析

AC代码
C++
class Solution {
public:
bool checkPowersOfThree(int n) {
vector three(1, 1);
while (three.back()
方法二:进制转换

AC代码
C++
class Solution {
public:
bool checkPowersOfThree(int n) {
while (n) {
if (n % 3 == 2)
return false;
n /= 3;
}
return true;
}
};