Welcome to Subscribe On Youtube

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

1317. Convert Integer to the Sum of Two No-Zero Integers (Easy)

Given an integer n. No-Zero integer is a positive integer which doesn't contain any 0 in its decimal representation.

Return a list of two integers [A, B] where:

  • A and B are No-Zero integers.
  • A + B = n

It's guarateed that there is at least one valid solution. If there are many valid solutions you can return any of them.

 

Example 1:

Input: n = 2
Output: [1,1]
Explanation: A = 1, B = 1. A + B = n and both A and B don't contain any 0 in their decimal representation.

Example 2:

Input: n = 11
Output: [2,9]

Example 3:

Input: n = 10000
Output: [1,9999]

Example 4:

Input: n = 69
Output: [1,68]

Example 5:

Input: n = 1010
Output: [11,999]

 

Constraints:

  • 2 <= n <= 10^4

Related Topics:
Math

Solution 1.

  • class Solution {
        public int[] getNoZeroIntegers(int n) {
            int[] nums = new int[2];
            int upper = n / 2;
            for (int i = 1; i <= upper; i++) {
                int num2 = n - i;
                if (noZero(i) && noZero(num2)) {
                    nums[0] = i;
                    nums[1] = num2;
                    break;
                }
            }
            return nums;
        }
    
        public boolean noZero(int num) {
            if (num <= 0)
                return false;
            while (num > 0) {
                int remainder = num % 10;
                if (remainder == 0)
                    return false;
                num /= 10;
            }
            return true;
        }
    }
    
    ############
    
    class Solution {
        public int[] getNoZeroIntegers(int n) {
            for (int a = 1;; ++a) {
                int b = n - a;
                if (!(a + "" + b).contains("0")) {
                    return new int[] {a, b};
                }
            }
        }
    }
    
  • // OJ: https://leetcode.com/problems/convert-integer-to-the-sum-of-two-no-zero-integers/
    // Time: O(NlogN)
    // Space: O(1)
    class Solution {
        bool hasZero(int n) {
            for (; n; n /= 10) {
                if (n % 10 == 0) return true;
            }
            return false;
        }
    public:
        vector<int> getNoZeroIntegers(int n) {
            int a = 1;
            for (; hasZero(a) || hasZero(n - a); ++a);
            return { a, n - a };
        }
    };
    
  • class Solution:
        def getNoZeroIntegers(self, n: int) -> List[int]:
            for a in range(1, n):
                b = n - a
                if "0" not in str(a) + str(b):
                    return [a, b]
    
    
    
  • func getNoZeroIntegers(n int) []int {
    	for a := 1; ; a++ {
    		b := n - a
    		if !strings.Contains(strconv.Itoa(a)+strconv.Itoa(b), "0") {
    			return []int{a, b}
    		}
    	}
    }
    

All Problems

All Solutions