题解 | #下一个更大的数(三)#

下一个更大的数(三)

https://www.nowcoder.com/practice/475da0d4e37a481bacf9a09b5a059199

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

全部评论

相关推荐

06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务