Skip to content

4039. Compute Decimal Representation


4039. Compute Decimal Representation

Easy


You are given a positive integer n.

A positive integer is a base-10 component if it is the product of a single digit from 1 to 9 and a non-negative power of 10. For example, 500, 30, and 7 are base-10 components, while 537, 102, and 11 are not.

Express n as a sum of only base-10 components, using the fewest base-10 components possible.

Return an array containing these base-10 components in descending order.

 

Example 1:

Input: n = 537

Output: [500,30,7]

Explanation:

We can express 537 as 500 + 30 + 7. It is impossible to express 537 as a sum using fewer than 3 base-10 components.

Example 2:

Input: n = 102

Output: [100,2]

Explanation:

We can express 102 as 100 + 2. 102 is not a base-10 component, which means 2 base-10 components are needed.

Example 3:

Input: n = 6

Output: [6]

Explanation:

6 is a base-10 component.

 

Constraints:

  • 1 <= n <= 109

Solution

class Solution {
    public int[] decimalRepresentation(int n) {
        ArrayList<Integer> dig = new ArrayList<>();
        int temp = n;
        while (temp > 0) {
            dig.add(0, temp % 10);
            temp /= 10;
        }    
        ArrayList<Integer> ans = new ArrayList<>();
        for (int i = 0; i < dig.size(); i++) {
            int current = dig.get(i);
            if (current == 0) continue;
            int curr = current * (int)(Math.pow(10, dig.size() - i - 1)); 
            ans.add(curr);
        }
        int res[] = new int[ans.size()];
        for (int i = 0; i < ans.size(); i++)
            res[i] = ans.get(i);
        return res;
    }
}

Complexity Analysis

  • Time Complexity: O(?)
  • Space Complexity: O(?)

Explanation

[Add detailed explanation here]