Welcome to Subscribe On Youtube

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;
        }
    }
    
  • class Solution(object):
      def newInteger(self, n):
        """
        :type n: int
        :rtype: int
        """
        ans = 0
        k = 1
        while n > 0:
          ans += (n % 9) * k
          k *= 10
          n /= 9
        return ans
    
    

All Problems

All Solutions