2025-03-04 Daily Challenge

Today I have done leetcode's March LeetCoding Challenge with cpp.

March LeetCoding Challenge 4

Description

Check if Number is a Sum of Powers of Three

Given an integer n, return true if it is possible to represent n as the sum of distinct powers of three. Otherwise, return false.

An integer y is a power of three if there exists an integer x such that y == 3x.

 

Example 1:

Input: n = 12
Output: true
Explanation: 12 = 31 + 32

Example 2:

Input: n = 91
Output: true
Explanation: 91 = 30 + 32 + 34

Example 3:

Input: n = 21
Output: false

 

Constraints:

  • 1 <= n <= 107

Solution

class Solution {
  vector<int> powers{4782969, 1594323, 531441, 177147, 59049, 19683, 6561, 2187, 729, 243, 81, 27, 9, 3, 1};
public:
  bool checkPowersOfThree(int n) {
    for(auto power : powers) {
      if(n >= power) n -= power;
    }
    return n == 0;
  }
};

// Accepted
// 129/129 cases passed (0 ms)
// Your runtime beats 100 % of cpp submissions
// Your memory usage beats 41.55 % of cpp submissions (7.9 MB)