Class Solution
- java.lang.Object
-
- g1801_1900.s1850_minimum_adjacent_swaps_to_reach_the_kth_smallest_number.Solution
-
public class Solution extends Object
1850 - Minimum Adjacent Swaps to Reach the Kth Smallest Number.Medium
You are given a string
num, representing a large integer, and an integerk.We call some integer wonderful if it is a permutation of the digits in
numand is greater in value thannum. There can be many wonderful integers. However, we only care about the smallest-valued ones.- For example, when
num = "5489355142":- The 1st smallest wonderful integer is
"5489355214". - The 2nd smallest wonderful integer is
"5489355241". - The 3rd smallest wonderful integer is
"5489355412". - The 4th smallest wonderful integer is
"5489355421".
- The 1st smallest wonderful integer is
Return the minimum number of adjacent digit swaps that needs to be applied to
numto reach thekthsmallest wonderful integer.The tests are generated in such a way that
kthsmallest wonderful integer exists.Example 1:
Input: num = “5489355142”, k = 4
Output: 2
Explanation: The 4th smallest wonderful number is “5489355421”. To get this number:
-
Swap index 7 with index 8: “5489355142” -> “5489355412”
-
Swap index 8 with index 9: “5489355412” -> “5489355421”
Example 2:
Input: num = “11112”, k = 4
Output: 4
Explanation: The 4th smallest wonderful number is “21111”. To get this number:
-
Swap index 3 with index 4: “11112” -> “11121”
-
Swap index 2 with index 3: “11121” -> “11211”
-
Swap index 1 with index 2: “11211” -> “12111”
-
Swap index 0 with index 1: “12111” -> “21111”
Example 3:
Input: num = “00123”, k = 1
Output: 1
Explanation: The 1st smallest wonderful number is “00132”. To get this number:
- Swap index 3 with index 4: “00123” -> “00132”
Constraints:
2 <= num.length <= 10001 <= k <= 1000numonly consists of digits.
- For example, when
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
-
-
Method Detail
-
getMinSwaps
public int getMinSwaps(String num, int k)
-
-