Formatted question description: https://leetcode.ca/all/660.html

660. Remove 9

Level

Hard

Description

Start from integer 1, remove any integer that contains 9 such as 9, 19, 29…

So now, you will have a new integer sequence: 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, …

Given a positive integer n, you need to return the n-th integer after removing. Note that 1 will be the first integer.

Example 1:

Input: 9

Output: 10

Hint: n will not exceed 9 x 10^8.

Solution

In the new integer sequence, the n-th number is just n represented in base 9. So simply return the base 9 representation of number n.

public class Solution {
    public int newInteger(int n) {
        String radix9Str = "";
        while (n > 0) {
            int remainder = n % 9;
            radix9Str = remainder + radix9Str;
            n /= 9;
        }
        int radix9 = Integer.parseInt(radix9Str);
        return radix9;
    }
}

All Problems

All Solutions