LeetCode 1999. Smallest Greater Multiple Made of Two Digits Solution in Java, C++, Python & Go | Explanation + Code

CoderIndeed
0
1999. Smallest Greater Multiple Made of Two Digits

Description

Given three integers, k, digit1, and digit2, you want to find the smallest integer that is:

  • Larger than k,
  • A multiple of k, and
  • Comprised of only the digits digit1 and/or digit2.

Return the smallest such integer. If no such integer exists or the integer exceeds the limit of a signed 32-bit integer (231 - 1), return -1.

 

Example 1:

Input: k = 2, digit1 = 0, digit2 = 2
Output: 20
Explanation:
20 is the first integer larger than 2, a multiple of 2, and comprised of only the digits 0 and/or 2.

Example 2:

Input: k = 3, digit1 = 4, digit2 = 2
Output: 24
Explanation:
24 is the first integer larger than 3, a multiple of 3, and comprised of only the digits 4 and/or 2.

Example 3:

Input: k = 2, digit1 = 0, digit2 = 0
Output: -1
Explanation:
No integer meets the requirements so return -1.

 

Constraints:

  • 1 <= k <= 1000
  • 0 <= digit1 <= 9
  • 0 <= digit2 <= 9

Solutions

Solution 1

PythonJavaC++Go
class Solution: def findInteger(self, k: int, digit1: int, digit2: int) -> int: if digit1 == 0 and digit2 == 0: return -1 if digit1 > digit2: return self.findInteger(k, digit2, digit1) q = deque([0]) while 1: x = q.popleft() if x > 2**31 - 1: return -1 if x > k and x % k == 0: return x q.append(x * 10 + digit1) if digit1 != digit2: q.append(x * 10 + digit2)(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !