zoukankan      html  css  js  c++  java
  • Java -- 给定一个int数组,拼接出最大数值


    public class ZhiJieTiaoDong {


    /*
    给定一个数组:组合成最大数值
    */
    public String szpj(int[] args){
    if(null == args || args.length == 0){
    return "";
    }
    StringBuilder stringBuilder = new StringBuilder();
    int[] yxsz = compareSZ(args);
    for (int i = args.length - 1; i >= 0; i--){
    stringBuilder.append(String.valueOf(args[i]));
    }
    return stringBuilder.toString();
    }

    /*
    排序
    */
    private int[] compareSZ(int[] args){
    if(null == args){
    throw new NullPointerException();
    }
    if (args.length == 1){
    return args;
    }
    int change = 0;
    for(int i = 0; i < args.length - 1; i++){
    for(int j = i + 1; j < args.length; j++){
    if(compare(args[i], args[j])){
    change = args[i];
    args[i] = args[j];
    args[j] = change;
    }
    }
    }
    return args;
    }

    /*
    比较两个数字哪个作高位排列
    example: 9, 98 --> 998; 15, 18 --> 1815
    */
    private boolean compare(int a, int b){
    String aa = String.valueOf(a);
    String bb = String.valueOf(b);
    int ab = Integer.valueOf(aa + bb);
    int ba = Integer.valueOf(bb + aa);
    if(ab >= ba){
    return true;
    }else {
    return false;
    }
    }

    public static void main(String[] args){
    ZhiJieTiaoDong zhiJieTiaoDong = new ZhiJieTiaoDong();
    int[] a = {10,21,13,24};
    int[] b = {35,11,23,4,34};
    int[] c = {0, 4,2, 32, 11, 22, 11};
    System.out.println(zhiJieTiaoDong.szpj(c));
    }



    }
  • 相关阅读:
    OnSharedPreferenceChangeListener不被调用原理及解决方案
    自测题的整理(持续更新)
    排序的练习题
    C++各种类型的简单排序大汇总~
    洛谷P1540 机器翻译
    队列
    文件和结构体
    洛谷P1079 Vigenère 密码
    洛谷P1328生活大爆炸版石头剪刀布
    洛谷P1553数字反转升级版
  • 原文地址:https://www.cnblogs.com/fqfanqi/p/10693444.html
Copyright © 2011-2022 走看看