import java.util.*;
/**
* NC324 下一个更大的数(三)
* @author d3y1
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 模拟法: 举例子找规律
*
* @param n int整型
* @return int整型
*/
public int nextGreaterElement (int n) {
char[] numArr = String.valueOf(n).toCharArray();
int len = numArr.length;
for(int i=len-1; i>=0; i--){
for(int j=len-1; j>i; j--){
if(numArr[i] < numArr[j]){
swap(numArr, i, j);
sort(numArr, i+1, len);
return Integer.parseInt(String.valueOf(numArr));
}
}
}
return -1;
}
/**
* 交换
* @param numArr
* @param i
* @param j
*/
private void swap(char[] numArr, int i, int j){
char tmp = numArr[i];
numArr[i] = numArr[j];
numArr[j] = tmp;
}
/**
* 排序: 升序
* @param numArr
* @param i
* @param j
*/
private void sort(char[] numArr, int i, int j){
// Arrays sub sort => start: i, end: j(不包含j)
Arrays.sort(numArr, i, j);
}
}