zoukankan      html  css  js  c++  java
  • 今日头条,找出下一个比它大的整数

    package Integer;

    import java.util.Arrays;

    public class GetNextAsc {

    public static int getNextAsc(int obj) {
    String temp = obj + "";
    char[] chars = temp.toCharArray();
    int len = chars.length;
    for (int i = 0; (len - i - 2 >= 0) && i < len; i++) {
    int maxIndex = -1;
    char maxValue = '9' + 1;
    //获取最小的大数值下标
    for (int r = len - i - 1; r <= len - 1; r++) {
    if (chars[r] > chars[len - i - 2]) {
    if (chars[r] < maxValue) {
    maxIndex = r;
    maxValue = chars[r];
    }
    }
    }

    if (maxIndex == -1) {
    continue;
    } else {
    //交换
    char c = chars[len - i - 2];
    chars[len - i - 2] = chars[maxIndex];
    chars[maxIndex] = c;
    //排序,从小到大
    char[] subChar = Arrays.copyOfRange(chars, len - i - 1, len);
    Arrays.sort(subChar);
    for (int j = 0; j < i + 1; j++) {
    int k = len - i - 1 + j;
    chars[k] = subChar[j];
    }
    StringBuilder sb = new StringBuilder();
    for (int p = 0; p < chars.length; p++) {
    sb.append(chars[p]);
    }

    return Integer.valueOf(sb.toString());

    }

    }

    return -1;

    }

    public static void main(String[] args) {
    System.out.println(getNextAsc(1111111));
    }

    }
  • 相关阅读:
    聪明人 & 普通人
    13种模型及方法论
    面向大规模商业系统的数据库设计和实践
    分治算法
    软件架构
    隐含前提思维模型
    Git回滚代码到某个commit
    使用arthas排查 test 问题
    Arthas
    docker 操作入门
  • 原文地址:https://www.cnblogs.com/mlz-2019/p/9648782.html
Copyright © 2011-2022 走看看