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); } }