Java -- 给定一个int数组,拼接出最大数值

Posted 学习是不让自己瞎想的最好方式

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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));
}



}

以上是关于Java -- 给定一个int数组,拼接出最大数值的主要内容,如果未能解决你的问题,请参考以下文章

给定一个任意长度的java数组,如何算出数组内的数能组合出来的最大整数?

剑指Offer(Java版)第六十七题:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。 例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口

把数组中的数拼接起来,求最大值

给定一个数组,获取其中的最大。最小值

输入一个正整数数组,把数组里所有数字拼接起来排成一个数。打印能拼接出所有数字中最小的一个

321. 拼接最大数