2
public int getMinSwaps(String num, int k) {3
int[] nums = new int[num.length()];4
int[] org = new int[num.length()];6
for (int i = 0; i < num.length(); i++) {7
int e = Character.getNumericValue(num.charAt(i));13
nextPermutation(nums);19
for (int i = 0; i < nums.length; i++) {21
if (nums[i] != org[i]) {23
for (j = i + 1; j < nums.length; j++) if (org[j] == nums[i]) break;25
while (j > 0 && j != i) {36
public void nextPermutation(int[] nums) {38
if (nums.length <= 1) return;40
int j = nums.length - 2;41
while (j >= 0 && nums[j] >= nums[j + 1]) j--;44
int k = nums.length - 1;45
while (nums[j] >= nums[k]) k--;50
reverse(nums, j + 1, nums.length - 1);53
public void swap(int[] nums, int j, int k) {59
public void reverse(int[] nums, int i, int j) {